2018-05-04 14:04:04 +00:00
{
"contractName" : "SocialRecoveryExtension" ,
"abi" : [
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"outputs" : [
{
"name" : "" ,
"type" : "bytes4"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "threshold" ,
"outputs" : [
{
"name" : "" ,
"type" : "uint8"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"name" : "isFriend" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "NAME" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "gnosisSafe" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "bytes32"
} ,
{
"name" : "" ,
"type" : "address"
}
] ,
"name" : "isConfirmed" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "uint256"
}
] ,
"name" : "friends" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "bytes32"
}
] ,
"name" : "isExecuted" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "VERSION" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"inputs" : [
{
"name" : "_friends" ,
"type" : "address[]"
} ,
{
"name" : "_threshold" ,
"type" : "uint8"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "constructor"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "_friends" ,
"type" : "address[]"
} ,
{
"name" : "_threshold" ,
"type" : "uint8"
}
] ,
"name" : "setup" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "_masterCopy" ,
"type" : "address"
}
] ,
"name" : "changeMasterCopy" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "dataHash" ,
"type" : "bytes32"
}
] ,
"name" : "confirmTransaction" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "sender" ,
"type" : "address"
} ,
{
"name" : "to" ,
"type" : "address"
} ,
{
"name" : "value" ,
"type" : "uint256"
} ,
{
"name" : "data" ,
"type" : "bytes"
} ,
{
"name" : "operation" ,
"type" : "uint8"
}
] ,
"name" : "isExecutable" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "dataHash" ,
"type" : "bytes32"
}
] ,
"name" : "isConfirmedByRequiredFriends" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "data" ,
"type" : "bytes"
}
] ,
"name" : "getDataHash" ,
"outputs" : [
{
"name" : "" ,
"type" : "bytes32"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
}
] ,
"bytecode" : " 0 x 606060405234156200001057600080 f d 5 b 6040516200140738038062001407833981016040528080518201919060200180519060200190919050506200005 a 82826200006264010000000002620006 a 2176401000000009004565 b 505062000360565 b 600080600160009054906101000 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 16141515620000 a b 57600080 f d 5 b 82518260 f f 1611151515620000 b f 57600080 f d 5 b 60028260 f f 1610151515620000 d 357600080 f d 5 b 33600160006101000 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 160217905550600090505 b 82518110156200025257600083828151811015156200013457 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16141515156200016257600080 f d 5 b 6003600084838151811015156200017557 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f 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 16151515620001 d 457600080 f d 5 b 6001600360008584815181101515620001e957 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f 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 21916908315150217905550808060010191505062000119565 b 82600290805190602001906200026 a 9291906200028 b 565 b 5081600160146101000 a 81548160 f f 0 21916908360 f f 160217905550505050565 b 82805482825590600052602060002090810192821562000307579160200282015 b 82811115620003065782518260006101000 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 16021790555091602001919060010190620002 a c 565 b 5 b 5090506200031691906200031 a 565 b 5090565 b 6200035 d 91905 b 808211156200035957600081816101000 a 81549073 f f f f f f f f f f f f f f f f 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 2191690555060010162000321565 b 5090565 b 90565 b 61109780620003706000396000 f 3006060604052600436106100 d b 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806336749 c 1 a 146100e05780633 c f 5 b 3091461014757806342 c d e 4e8146101 a d 57806368125 a 1 b 146101 d c 57806379716e431461022 d 5780637 d e 7 e d e f 146102545780639 c a 89 d 0 d 1461028 d 578063 a 3 f 4 d f 7e146102 c c 578063 a 84173 a e 1461035 a 578063 a e 68 b 0 56146103 a f 578063 b 79 f f a f f 14610428578063 c d e 0 9 c a 914610486578063 c e 1468281461054e578063 e 52 c b 36 a 146105 b 1578063 f f a 1 a d 74146105 f 0 575 b 600080 f d 5 b 34156100 e b 57600080 f d 5 b 6100 f 361067e565 b 60405180827 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 19167 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1916815260200191505060405180910390 f 35 b 341561015257600080 f d 5 b 6101 a b 60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803560 f f 169060200190919050506106 a 2565 b 0 0 5 b 34156101 b 857600080 f d 5 b 6101 c 0 6108 b f 565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 34156101e757600080 f d 5 b 610213600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190919050506108 d 2565 b 604051808215151515815260200191505060405180910390 f 35 b 341561023857600080 f d 5 b 6102526004808035600019169060200190919050506108 f 2565 b 0 0 5 b 341561025 f 57600080 f d 5 b 61028 b 600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190919050506109 f 3565 b 0 0 5 b 341561029857600080 f d 5 b 6102 b 2600480803560001916906020019091905050610 a b 8565 b 604051808215151515815260200191505060405180910390 f 35 b 34156102 d 757600080 f d 5 b 6102 d f 610 b b 8565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561031 f 578082015181840152602081019050610304565 b 50505050905090810190601 f 16801561034 c 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 341561036557600080 f d 5 b 61036 d 610 b f 1565 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 34156103 b a 57600080 f d 5 b 61040 a 600480803590602001908201803590602001908080601 f 0 1602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610 c 17565 b 60405180826000191660001916815260200191505060405180910390 f 35 b 341561043357600080 f d 5 b 61046 c 60048080356000191690602001909190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019091905050610 c 83565 b 604051808215151515815260200191505060405180910390 f 35 b
"deployedBytecode" : " 0 x 6060604052600436106100 d b 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806336749 c 1 a 146100e05780633 c f 5 b 3091461014757806342 c d e 4e8146101 a d 57806368125 a 1 b 146101 d c 57806379716e431461022 d 5780637 d e 7 e d e f 146102545780639 c a 89 d 0 d 1461028 d 578063 a 3 f 4 d f 7e146102 c c 578063 a 84173 a e 1461035 a 578063 a e 68 b 0 56146103 a f 578063 b 79 f f a f f 14610428578063 c d e 0 9 c a 914610486578063 c e 1468281461054e578063 e 52 c b 36 a 146105 b 1578063 f f a 1 a d 74146105 f 0 575 b 600080 f d 5 b 34156100 e b 57600080 f d 5 b 6100 f 361067e565 b 60405180827 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 19167 b f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1916815260200191505060405180910390 f 35 b 341561015257600080 f d 5 b 6101 a b 60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803560 f f 169060200190919050506106 a 2565 b 0 0 5 b 34156101 b 857600080 f d 5 b 6101 c 0 6108 b f 565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 34156101e757600080 f d 5 b 610213600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190919050506108 d 2565 b 604051808215151515815260200191505060405180910390 f 35 b 341561023857600080 f d 5 b 6102526004808035600019169060200190919050506108 f 2565 b 0 0 5 b 341561025 f 57600080 f d 5 b 61028 b 600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190919050506109 f 3565 b 0 0 5 b 341561029857600080 f d 5 b 6102 b 2600480803560001916906020019091905050610 a b 8565 b 604051808215151515815260200191505060405180910390 f 35 b 34156102 d 757600080 f d 5 b 6102 d f 610 b b 8565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561031 f 578082015181840152602081019050610304565 b 50505050905090810190601 f 16801561034 c 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 341561036557600080 f d 5 b 61036 d 610 b f 1565 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 34156103 b a 57600080 f d 5 b 61040 a 600480803590602001908201803590602001908080601 f 0 1602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610 c 17565 b 60405180826000191660001916815260200191505060405180910390 f 35 b 341561043357600080 f d 5 b 61046 c 60048080356000191690602001909190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019091905050610 c 83565 b 604051808215151515815260200191505060405180910390 f 35 b 341561049157600080 f d 5 b 610534600480803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909190803590602001909190803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560 f f 16906020019091905050610 c b 2565 b 604051808215151515815260200191505060405180910390 f 35 b 341561055957600080 f d 5 b 61056 f 6004808035906020019091905050610 f 0 6565 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 34156105 b c 57600080 f d 5 b 6105 d 6600480803560001916906020019091905050610 f 45565 b 604051808215151515815260200191505060405180910390 f 35 b 34156105 f b 57600080 f d 5 b 610603610 f 65565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 83811015610643578082015181840152602081019050610628565 b 50505050905090810190601 f 1680156106705780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 7 f 54e99 c 6e0000000000000000000000000000000000000000000000000000000081565 b 600080600160009054906101000 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 e a 57600080 f d 5 b 82518260 f f 16111515156106 f d 57600080 f d 5 b 60028260 f f 161015151561071057600080 f d 5 b 33600160006101000 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 160217905550600090505 b 8251811015610888576000838281518110151561076 f 57 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415151561079 c 57600080 f d 5 b 6003600084838151811015156107 a e 57 f e 5 b 9060200190602002015173 f f f f f f f f f f f f f f f f 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 168152602001908152602001600020
"sourceMap" : "257:4890:6:-;;;1386:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1486:27;1492:8;1502:10;1486:5;;;;;:27;;;:::i;:::-;1386:134;;257:4890;;1717:669;2142:9;1966:1;1951:10;;;;;;;;;;;1943:24;;;1935:33;;;;;;;;2000:8;:15;1986:10;:29;;;;1978:38;;;;;;;;2048:1;2034:10;:15;;;;2026:24;;;;;;;;2084:10;2060;;:35;;;;;;;;;;;;;;;;;;2154:1;2142:13;;2137:183;2161:8;:15;2157:1;:19;2137:183;;;2220:1;2205:8;2214:1;2205:11;;;;;;;;;;;;;;;;;;:16;;;;2197:25;;;;;;;;2245:8;:21;2254:8;2263:1;2254:11;;;;;;;;;;;;;;;;;;2245:21;;;;;;;;;;;;;;;;;;;;;;;;;2244:22;2236:31;;;;;;;;2305:4;2281:8;:21;2290:8;2299:1;2290:11;;;;;;;;;;;;;;;;;;2281:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;2178:3;;;;;;;2137:183;;;2339:8;2329:7;:18;;;;;;;;;;;;:::i;:::-;;2369:10;2357:9;;:22;;;;;;;;;;;;;;;;;;1717:669;;;:::o;257:4890::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;" ,
"deployedSourceMap" : " 257 : 4890 : 6 : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 419 : 72 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1717 : 669 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 572 : 22 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 695 : 41 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2835 : 181 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2532 : 190 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4481 : 405 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 310 : 57 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 2 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 ; 84 : 5 ; 80 : 1 ; 75 : 3 ; 71 ; 64 : 6 ; 52 : 2 ; 49 : 1 ; 45 : 3 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 3 : 109 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 538 : 28 : 6 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 5015 : 130 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 939 : 65 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3404 : 916 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 600 : 24 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 804 : 43 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 373 : 40 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 2 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 ; 84 : 5 ; 80 : 1 ; 75 : 3 ; 71 ; 64 : 6 ; 52 : 2 ; 49 : 1 ; 45 : 3 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 3 : 109 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 419 : 72 : 6 ; ; ; : : : o ; 1717 : 669 : : - ; 2142 : 9 ; 1966 : 1 ; 1951 : 10 ; ; ; ; ; ; ; ; ; ; ; 1943 : 24 ; ; ; 1935 : 33 ; ; ; ; ; ; ; ; 2000 : 8 ; : 15 ; 1986 : 10 ; : 29 ; ; ; ; 1978 : 38 ; ; ; ; ; ; ; ; 2048 : 1 ; 2034 : 10 ; : 15 ; ; ; ; 2026 : 24 ; ; ; ; ; ; ; ; 2084 : 10 ; 2060 ; ; : 35 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2154 : 1 ; 2142 : 13 ; ; 2137 : 183 ; 2161 : 8 ; : 15 ; 2157 : 1 ; : 19 ; 2137 : 183 ; ; ; 2220 : 1 ; 2205 : 8 ; 2214 : 1 ; 2205 : 11 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 16 ; ; ; ; 2197 : 25 ; ; ; ; ; ; ; ; 2245 : 8 ; : 21 ; 2254 : 8 ; 2263 : 1 ; 2254 : 11 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2245 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2244 : 22 ; 2236 : 31 ; ; ; ; ; ; ; ; 2305 : 4 ; 2281 : 8 ; : 21 ; 2290 : 8 ; 2299 : 1 ; 2290 : 11 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2281 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 28 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2178 : 3 ; ; ; ; ; ; ; 2137 : 183 ; ; ; 2339 : 8 ; 2329 : 7 ; : 18 ; ; ; ; ; ; ; ; ; ; ; ; : : : i ; : : : - ; ; 2369 : 10 ; 2357 : 9 ; ; : 22 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1717 : 669 ; ; ; : : : o ; 572 : 22 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 695 : 41 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 2835 : 181 : : - ; 1153 : 8 ; : 20 ; 1162 : 10 ; 1153 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1145 : 29 ; ; ; ; ; ; ; ; 2938 : 10 ; : 20 ; 2949 : 8 ; 2938 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2937 : 21 ; 2929 : 30 ; ; ; ; ; ; ; ; 3005 : 4 ; 2969 : 11 ; : 21 ; 2981 : 8 ; 2969 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 33 ; 2991 : 10 ; 2969 : 33 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 40 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2835 : 181 ; : : : o ; 2532 : 190 : : - ; 1077 : 10 ; ; ; ; ; ; ; ; ; ; ; 1055 : 33 ; ; : 10 ; : 33 ; ; ; 1047 : 42 ; ; ; ; ; ; ; ; 2679 : 1 ; 2663 : 11 ; 2655 : 25 ; ; ; ; 2647 : 34 ; ; ; ; ; ; ; ; 2704 : 11 ; 2691 : 10 ; ; : 24 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2532 : 190 ; : : : o ; 4481 : 405 : : - ; 4582 : 4 ; 4602 : 25 ; 4642 : 9 ; 4654 : 1 ; 4642 : 13 ; ; 4637 : 221 ; 4661 : 7 ; : 14 ; ; ; ; 4657 : 1 ; : 18 ; 4637 : 221 ; ; ; 4700 : 11 ; : 21 ; 4712 : 8 ; 4700 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 33 ; 4722 : 7 ; 4730 : 1 ; 4722 : 10 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4700 : 33 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4696 : 74 ; ; ; 4751 : 19 ; ; ; ; ; ; ; 4696 : 74 ; 4809 : 9 ; ; ; ; ; ; ; ; ; ; ; 4788 : 30 ; ; : 17 ; : 30 ; 4784 : 63 ; ; ; 4843 : 4 ; 4836 : 11 ; ; ; ; 4784 : 63 ; 4677 : 3 ; ; ; ; ; ; ; 4637 : 221 ; ; ; 4874 : 5 ; 4867 : 12 ; ; 4481 : 405 ; ; ; ; ; ; : : : o ; 310 : 57 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 538 : 28 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 5015 : 130 : : - ; 5093 : 7 ; 5133 : 4 ; 5123 : 15 ; ; ; ; ; ; ; ; ; ; ; ; ; 36 : 153 : -1 ; 66 : 2 ; 61 : 3 ; 58 : 2 ; 51 : 6 ; 36 : 153 ; ; ; 182 : 3 ; 176 : 5 ; 171 : 3 ; 164 : 6 ; 98 : 2 ; 93 : 3 ; 89 ; 82 : 19 ; ; 123 : 2 ; 118 : 3 ; 114 ; 107 : 19 ; ; 148 : 2 ; 143 : 3 ; 139 ; 132 : 19 ; ; 36 : 153 ; ; ; 274 : 1 ; 267 : 3 ; 263 : 2 ; 259 : 3 ; 254 ; 250 ; 246 ; 315 : 4 ; 311 : 3 ; 305 ; 299 : 5 ; 295 : 3 ; 356 : 4 ; 350 : 3 ; 344 : 5 ; 340 : 3 ; 389 : 7 ; 380 ; 377 : 2 ; 372 : 3 ; 365 : 6 ; 3 : 399 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 5116 : 22 : 6 ; ; 5015 : 130 ; ; ; : : : o ; 939 : 65 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 3404 : 916 : : - ; 3568 : 4 ; 3890 : 25 ; 4085 : 16 ; 1077 : 10 ; ; ; ; ; ; ; ; ; ; ; 1055 : 33 ; ; : 10 ; : 33 ; ; ; 1047 : 42 ; ; ; ; ; ; ; ; 3660 : 8 ; : 16 ; 3669 : 6 ; 3660 : 16 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3652 : 25 ; ; ; ; ; ; ; ; 3709 : 10 ; ; ; ; ; ; ; ; ; ; ; 3695 : 25 ; ; : 2 ; : 25 ; ; ; 3687 : 34 ; ; ; ; ; ; ; ; 3748 : 1 ; 3739 : 5 ; : 10 ; 3731 : 19 ; ; ; ; ; ; ; ; 3781 : 25 ; 3768 : 38 ; ; ; ; ; ; ; ; : 9 ; : 38 ; ; ; ; ; ; ; ; ; 3760 : 47 ; ; ; ; ; ; ; ; 3986 : 4 ; 3980 ; 3976 : 3 ; 3970 : 5 ; 3948 : 44 ; ; 4041 : 33 ; 4019 : 55 ; ; ; : 18 ; : 55 ; ; ; ; 4011 : 64 ; ; ; ; ; ; ; ; 4104 : 17 ; 4116 : 4 ; 4104 : 11 ; : 17 : : i ; : : : - ; 4085 : 36 ; ; 4139 : 10 ; : 20 ; 4150 : 8 ; 4139 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4138 : 21 ; : 75 ; ; ; ; ; 4175 : 38 ; 4204 : 8 ; 4175 : 28 ; : 38 : : i ; : : : - ; 4138 : 75 ; 4131 : 161 ; ; ; 4252 : 4 ; 4229 : 10 ; : 20 ; 4240 : 8 ; 4229 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 27 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4277 : 4 ; 4270 : 11 ; ; ; ; 4131 : 161 ; 4308 : 5 ; 4301 : 12 ; ; 1099 : 1 ; 3404 : 916 ; ; ; ; ; ; ; ; ; : : : o ; 600 : 24 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o
"source" : "pragma solidity 0.4.19;\nimport \"../Extension.sol\";\nimport \"../GnosisSafe.sol\";\n\n\n/// @title Social Recovery Extension - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract SocialRecoveryExtension is Extension {\n\n string public constant NAME = \"Social Recovery Extension\";\n string public constant VERSION = \"0.0.1\";\n bytes4 public constant REPLACE_OWNER_FUNCTION_IDENTIFIER = hex\"54e99c6e\" ; \ n \ n S o c i a l R e c o v e r y E x t e n s i o n m a s t e r C o p y ; \ n G n o s i s S a f e p u b l i c g n o s i s S a f e ; \ n u i n t 8 p u b l i c t h r e s h o l d ; \ n a d d r e s s [ ] p u b l i c f r i e n d s ; \ n \ n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyGnosisSafe() {\n require(msg.sender == address(gnosisSafe));\n _;\n }\n\n modifier onlyFriend() {\n require(isFriend[msg.sender]);\n _;\n }\n\n /// @dev Constructor function triggers setup function.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function SocialRecoveryExtension(address[] _friends, uint8 _threshold)\n public\n {\n setup(_friends, _threshold);\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] _friends, uint8 _threshold)\n public\n {\n // gnosisSafe can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(gnosisSafe) == 0);\n require(_threshold <= _friends.length);\n require(_threshold >= 2);\n gnosisSafe = GnosisSafe(msg.sender);\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n require(_friends[i] != 0);\n require(!isFriend[_friends[i]]);\n isFriend[_friends[i]] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(SocialRecoveryExtension _masterCopy)\n public\n onlyGnosisSafe\n {\n require(address(_masterCopy) != 0);\n masterCopy = _masterCopy;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash]);\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param sender Friend's address.\n /// @param to Gnosis Safe address.\n /// @param value No Ether should be send.\n /// @param data Encoded owner replacement transaction.\n /// @param operation Only Call operations are allowed.\n /// @return Returns if transaction can be executed.\n function isExecutable(address sender, address to, uint256 value, bytes data, GnosisSafe.Operation operation)\n public\n onlyGnosisSafe\n returns (bool)\n {\n // Only friends are allowed to execute the replacement.\n require(isFriend[sender]);\n require(to == address(gnosisSafe));\n require(value == 0);\n require(operation == GnosisSafe.Operation.Call);\n // Validate that transaction is a owner replacement transaction.\n bytes4 functionIdentifier;\n assembly {\n functionIdentifier
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/extensions/SocialRecoveryExtension.sol" ,
"ast" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/extensions/SocialRecoveryExtension.sol" ,
"exportedSymbols" : {
"SocialRecoveryExtension" : [
1759
]
} ,
"id" : 1760 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1420 ,
"literals" : [
"solidity" ,
"0.4" ,
".19"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:6"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol" ,
"file" : "../Extension.sol" ,
"id" : 1421 ,
"nodeType" : "ImportDirective" ,
"scope" : 1760 ,
"sourceUnit" : 19 ,
"src" : "24:26:6" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol" ,
"file" : "../GnosisSafe.sol" ,
"id" : 1422 ,
"nodeType" : "ImportDirective" ,
"scope" : 1760 ,
"sourceUnit" : 964 ,
"src" : "51:27:6" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : [ ] ,
"baseName" : {
"contractScope" : null ,
"id" : 1423 ,
"name" : "Extension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 18 ,
"src" : "293:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Extension_$18" ,
"typeString" : "contract Extension"
}
} ,
"id" : 1424 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "293:9:6"
}
] ,
"contractDependencies" : [
18
] ,
"contractKind" : "contract" ,
"documentation" : "@title Social Recovery Extension - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - <stefan@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 1759 ,
"linearizedBaseContracts" : [
1759 ,
18
] ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 1427 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "310:57:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1425 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "310:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "536f6369616c205265636f7665727920457874656e73696f6e" ,
"id" : 1426 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "340:27:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_995be5b755f102e2c36520d5037cfd901f504498d7c57ded40542623e7cc2eda" ,
"typeString" : "literal_string \"Social Recovery Extension\""
} ,
"value" : "Social Recovery Extension"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1430 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "373:40:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1428 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "373:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 1429 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "406:7:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1433 ,
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "419:72:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1431 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "419:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "54e99c6e" ,
"id" : 1432 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "478:13:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c9d777df93ed5e148240dbbfbc0215def5044b10739d563ea8310789d1317911" ,
"typeString" : "literal_string (contains invalid UTF-8 sequence at position 4)"
} ,
"value" : null
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1435 ,
"name" : "masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "498:34:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1434 ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1759 ,
"src" : "498:23:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1437 ,
"name" : "gnosisSafe" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "538:28:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1436 ,
"name" : "GnosisSafe" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 963 ,
"src" : "538:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1439 ,
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "572:22:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1438 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "572:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1442 ,
"name" : "friends" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "600:24:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
} ,
"typeName" : {
"baseType" : {
"id" : 1440 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "600:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1441 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "600:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1446 ,
"name" : "isFriend" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "695:41:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
"id" : 1445 ,
"keyType" : {
"id" : 1443 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "704:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "695:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
"id" : 1444 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "715:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1450 ,
"name" : "isExecuted" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "804:43:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"typeName" : {
"id" : 1449 ,
"keyType" : {
"id" : 1447 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "813:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
"src" : "804:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"valueType" : {
"id" : 1448 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "824:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1456 ,
"name" : "isConfirmed" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "939:65:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"typeName" : {
"id" : 1455 ,
"keyType" : {
"id" : 1451 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "948:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
"src" : "939:46:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"valueType" : {
"id" : 1454 ,
"keyType" : {
"id" : 1452 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "968:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "959:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
"id" : 1453 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "979:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1468 ,
"nodeType" : "Block" ,
"src" : "1037:70:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1464 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1459 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "1055:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1460 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1055:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1462 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "1077:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1461 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1069:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1463 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1069:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1055:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1458 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1047:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1465 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1047:42:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1466 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1047:42:6"
} ,
{
"id" : 1467 ,
"nodeType" : "PlaceholderStatement" ,
"src" : "1099:1:6"
}
]
} ,
"id" : 1469 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
"id" : 1457 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1034:2:6"
} ,
"src" : "1011:96:6" ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1479 ,
"nodeType" : "Block" ,
"src" : "1135:57:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1472 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "1153:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1475 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1473 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "1162:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1474 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1162:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1153:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1471 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1145:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1476 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1145:29:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1477 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1145:29:6"
} ,
{
"id" : 1478 ,
"nodeType" : "PlaceholderStatement" ,
"src" : "1184:1:6"
}
]
} ,
"id" : 1480 ,
"name" : "onlyFriend" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
"id" : 1470 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1132:2:6"
} ,
"src" : "1113:79:6" ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1493 ,
"nodeType" : "Block" ,
"src" : "1476:44:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1489 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1483 ,
"src" : "1492:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 1490 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1485 ,
"src" : "1502:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
{
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
] ,
"id" : 1488 ,
"name" : "setup" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1577 ,
"src" : "1486:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$returns$__$" ,
"typeString" : "function (address[] memory,uint8)"
}
} ,
"id" : 1491 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1486:27:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1492 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1486:27:6"
}
]
} ,
"id" : 1494 ,
"implemented" : true ,
"isConstructor" : true ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1486 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1483 ,
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1494 ,
"src" : "1419:18:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1481 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1419:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1482 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1419:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1485 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1494 ,
"src" : "1439:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1484 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1439:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1418:38:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1487 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1476:0:6"
} ,
"scope" : 1759 ,
"src" : "1386:134:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1576 ,
"nodeType" : "Block" ,
"src" : "1789:597:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1507 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1504 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "1951:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1503 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1943:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1505 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1943:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1506 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1966:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1943:24:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1502 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1935:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1508 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1935:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1509 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1935:33:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1514 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1511 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1499 ,
"src" : "1986:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1512 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2000:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1513 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2000:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1986:29:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1510 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1978:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1515 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1978:38:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1516 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1978:38:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1520 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1518 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1499 ,
"src" : "2034:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "32" ,
"id" : 1519 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2048:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_2_by_1" ,
"typeString" : "int_const 2"
} ,
"value" : "2"
} ,
"src" : "2034:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1517 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2026:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1521 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2026:24:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1522 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2026:24:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1528 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1523 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "2060:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1525 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "2084:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1526 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2084:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"id" : 1524 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "2073:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1527 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2073:22:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"src" : "2060:35:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"id" : 1529 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2060:35:6"
} ,
{
"body" : {
"id" : 1566 ,
"nodeType" : "Block" ,
"src" : "2183:137:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1546 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1542 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2205:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1544 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1543 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2214:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2205:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1545 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2220:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2205:16:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1541 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2197:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1547 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2197:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1548 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2197:25:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1555 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "2244:22:6" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1550 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "2245:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1554 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1551 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2254:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1553 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1552 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2263:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2254:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2245:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1549 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2236:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1556 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2236:31:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1557 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2236:31:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1564 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1558 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "2281:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1562 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1559 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2290:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1561 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1560 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2299:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2290:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2281:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1563 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2305:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "2281:28:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1565 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2281:28:6"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1537 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1534 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2157:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1535 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2161:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1536 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2161:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "2157:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1567 ,
"initializationExpression" : {
"assignments" : [
1531
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1531 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1577 ,
"src" : "2142:9:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1530 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2142:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1533 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1532 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2154:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "2142:13:6"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1539 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "2178:3:6" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1538 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2178:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1540 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2178:3:6"
} ,
"nodeType" : "ForStatement" ,
"src" : "2137:183:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1570 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1568 ,
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1442 ,
"src" : "2329:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1569 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2339:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"src" : "2329:18:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1571 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2329:18:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1574 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1572 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1439 ,
"src" : "2357:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1573 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1499 ,
"src" : "2369:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "2357:22:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"id" : 1575 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2357:22:6"
}
]
} ,
"id" : 1577 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1500 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1497 ,
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1577 ,
"src" : "1732:18:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1495 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1732:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1496 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1732:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1499 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1577 ,
"src" : "1752:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1498 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1752:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1731:38:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1501 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1789:0:6"
} ,
"scope" : 1759 ,
"src" : "1717:669:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1596 ,
"nodeType" : "Block" ,
"src" : "2637:85:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1589 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1586 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1579 ,
"src" : "2663:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
] ,
"id" : 1585 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2655:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1587 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2655:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1588 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2679:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2655:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1584 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2647:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1590 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2647:34:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1591 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2647:34:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1594 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1592 ,
"name" : "masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1435 ,
"src" : "2691:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1593 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1579 ,
"src" : "2704:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"src" : "2691:24:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"id" : 1595 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2691:24:6"
}
]
} ,
"id" : 1597 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1582 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1581 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1469 ,
"src" : "2618:14:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2618:14:6"
}
] ,
"name" : "changeMasterCopy" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1580 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1579 ,
"name" : "_masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1597 ,
"src" : "2558:35:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1578 ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1759 ,
"src" : "2558:23:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2557:37:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1583 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2637:0:6"
} ,
"scope" : 1759 ,
"src" : "2532:190:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1620 ,
"nodeType" : "Block" ,
"src" : "2919:97:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1608 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "2937:21:6" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1605 ,
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1450 ,
"src" : "2938:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
"id" : 1607 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1606 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1599 ,
"src" : "2949:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2938:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1604 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2929:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1609 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2929:30:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1610 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2929:30:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1618 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1611 ,
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1456 ,
"src" : "2969:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
"id" : 1615 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1612 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1599 ,
"src" : "2981:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2969:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1616 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1613 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "2991:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1614 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2991:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2969:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1617 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3005:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "2969:40:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1619 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2969:40:6"
}
]
} ,
"id" : 1621 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1602 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1601 ,
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1480 ,
"src" : "2904:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2904:10:6"
}
] ,
"name" : "confirmTransaction" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1600 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1599 ,
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1621 ,
"src" : "2863:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1598 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2863:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2862:18:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1603 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2919:0:6"
} ,
"scope" : 1759 ,
"src" : "2835:181:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1702 ,
"nodeType" : "Block" ,
"src" : "3578:742:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1639 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "3660:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1641 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1640 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1623 ,
"src" : "3669:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3660:16:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1638 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3652:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1642 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3652:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1643 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3652:25:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1649 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1645 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1625 ,
"src" : "3695:2:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1647 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "3709:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1646 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "3701:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1648 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3701:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3695:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1644 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3687:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1650 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3687:34:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1651 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3687:34:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1655 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1653 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1627 ,
"src" : "3739:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1654 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3748:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3739:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1652 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3731:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1656 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3731:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1657 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3731:19:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"id" : 1663 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1659 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1631 ,
"src" : "3768:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1660 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "3781:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1661 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 61 ,
"src" : "3781:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$61_$" ,
"typeString" : "type(enum GnosisSafe.Operation)"
}
} ,
"id" : 1662 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3781:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"src" : "3768:38:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1658 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3760:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1664 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3760:47:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1665 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3760:47:6"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1667 ,
"name" : "functionIdentifier" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3890:25:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1666 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3890:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1668 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3890:25:6"
} ,
{
"externalReferences" : [
{
"functionIdentifier" : {
"declaration" : 1667 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3948:18:6" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1629 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3980:4:6" ,
"valueSize" : 1
}
}
] ,
"id" : 1669 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n functionIdentifier := mload(add(data, 0x20))\n}" ,
"src" : "3925:93:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"id" : 1673 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1671 ,
"name" : "functionIdentifier" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1667 ,
"src" : "4019:18:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1672 ,
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1433 ,
"src" : "4041:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"src" : "4019:55:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1670 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4011:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1674 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4011:64:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1675 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4011:64:6"
} ,
{
"assignments" : [
1677
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1677 ,
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "4085:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1676 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4085:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1681 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1679 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1629 ,
"src" : "4116:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
"id" : 1678 ,
"name" : "getDataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1758 ,
"src" : "4104:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$" ,
"typeString" : "function (bytes memory) view returns (bytes32)"
}
} ,
"id" : 1680 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4104:17:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4085:36:6"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1689 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1685 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "4138:21:6" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1682 ,
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1450 ,
"src" : "4139:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
"id" : 1684 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1683 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1677 ,
"src" : "4150:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4139:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1687 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1677 ,
"src" : "4204:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
] ,
"id" : 1686 ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1746 ,
"src" : "4175:28:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes32_$returns$_t_bool_$" ,
"typeString" : "function (bytes32) view returns (bool)"
}
} ,
"id" : 1688 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4175:38:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "4138:75:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1699 ,
"nodeType" : "IfStatement" ,
"src" : "4131:161:6" ,
"trueBody" : {
"id" : 1698 ,
"nodeType" : "Block" ,
"src" : "4215:77:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1694 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1690 ,
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1450 ,
"src" : "4229:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
"id" : 1692 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1691 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1677 ,
"src" : "4240:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "4229:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1693 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4252:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "4229:27:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1695 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4229:27:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1696 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4277:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1637 ,
"id" : 1697 ,
"nodeType" : "Return" ,
"src" : "4270:11:6"
}
]
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1700 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4308:5:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1637 ,
"id" : 1701 ,
"nodeType" : "Return" ,
"src" : "4301:12:6"
}
]
} ,
"id" : 1703 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1634 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1633 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1469 ,
"src" : "3536:14:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "3536:14:6"
}
] ,
"name" : "isExecutable" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1632 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1623 ,
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3426:14:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1622 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3426:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1625 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3442:10:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1624 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3442:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1627 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3454:13:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1626 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3454:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1629 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3469:10:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
"typeName" : {
"id" : 1628 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3469:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1631 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3481:30:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1630 ,
"name" : "GnosisSafe.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 61 ,
"src" : "3481:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3425:87:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1637 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1636 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3568:4:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1635 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3568:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3567:6:6"
} ,
"scope" : 1759 ,
"src" : "3404:916:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : 17 ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1745 ,
"nodeType" : "Block" ,
"src" : "4592:294:6" ,
"statements" : [
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1711 ,
"name" : "confirmationCount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4602:25:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1710 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4602:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1712 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4602:25:6"
} ,
{
"body" : {
"id" : 1741 ,
"nodeType" : "Block" ,
"src" : "4682:176:6" ,
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1724 ,
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1456 ,
"src" : "4700:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
"id" : 1726 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1725 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1705 ,
"src" : "4712:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4700:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1730 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1727 ,
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1442 ,
"src" : "4722:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1729 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1728 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1714 ,
"src" : "4730:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4722:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4700:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1734 ,
"nodeType" : "IfStatement" ,
"src" : "4696:74:6" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1732 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "4751:19:6" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1731 ,
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1711 ,
"src" : "4751:17:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1733 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4751:19:6"
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1737 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1735 ,
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1711 ,
"src" : "4788:17:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1736 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1439 ,
"src" : "4809:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "4788:30:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1740 ,
"nodeType" : "IfStatement" ,
"src" : "4784:63:6" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1738 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4843:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1709 ,
"id" : 1739 ,
"nodeType" : "Return" ,
"src" : "4836:11:6"
}
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1720 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1717 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1714 ,
"src" : "4657:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1718 ,
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1442 ,
"src" : "4661:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1719 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "4661:14:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4657:18:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1742 ,
"initializationExpression" : {
"assignments" : [
1714
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1714 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4642:9:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1713 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4642:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1716 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1715 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4654:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4642:13:6"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1722 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "4677:3:6" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1721 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1714 ,
"src" : "4677:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1723 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4677:3:6"
} ,
"nodeType" : "ForStatement" ,
"src" : "4637:221:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1743 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4874:5:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1709 ,
"id" : 1744 ,
"nodeType" : "Return" ,
"src" : "4867:12:6"
}
]
} ,
"id" : 1746 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1706 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1705 ,
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4519:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1704 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4519:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4518:18:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1709 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1708 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4582:4:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1707 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4582:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4581:6:6"
} ,
"scope" : 1759 ,
"src" : "4481:405:6" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1757 ,
"nodeType" : "Block" ,
"src" : "5106:39:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1754 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1748 ,
"src" : "5133:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
"id" : 1753 ,
"name" : "keccak256" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2083 ,
"src" : "5123:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_sha3_pure$__$returns$_t_bytes32_$" ,
"typeString" : "function () pure returns (bytes32)"
}
} ,
"id" : 1755 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5123:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"functionReturnParameters" : 1752 ,
"id" : 1756 ,
"nodeType" : "Return" ,
"src" : "5116:22:6"
}
]
} ,
"id" : 1758 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getDataHash" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1749 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1748 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1758 ,
"src" : "5036:10:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
"typeName" : {
"id" : 1747 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5036:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5035:12:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1752 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1751 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1758 ,
"src" : "5093:7:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1750 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5093:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5092:9:6"
} ,
"scope" : 1759 ,
"src" : "5015:130:6" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 1760 ,
"src" : "257:4890:6"
}
] ,
"src" : "0:5148:6"
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/extensions/SocialRecoveryExtension.sol" ,
"exportedSymbols" : {
"SocialRecoveryExtension" : [
1759
]
} ,
"id" : 1760 ,
"nodeType" : "SourceUnit" ,
"nodes" : [
{
"id" : 1420 ,
"literals" : [
"solidity" ,
"0.4" ,
".19"
] ,
"nodeType" : "PragmaDirective" ,
"src" : "0:23:6"
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol" ,
"file" : "../Extension.sol" ,
"id" : 1421 ,
"nodeType" : "ImportDirective" ,
"scope" : 1760 ,
"sourceUnit" : 19 ,
"src" : "24:26:6" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol" ,
"file" : "../GnosisSafe.sol" ,
"id" : 1422 ,
"nodeType" : "ImportDirective" ,
"scope" : 1760 ,
"sourceUnit" : 964 ,
"src" : "51:27:6" ,
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : [ ] ,
"baseName" : {
"contractScope" : null ,
"id" : 1423 ,
"name" : "Extension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 18 ,
"src" : "293:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_Extension_$18" ,
"typeString" : "contract Extension"
}
} ,
"id" : 1424 ,
"nodeType" : "InheritanceSpecifier" ,
"src" : "293:9:6"
}
] ,
"contractDependencies" : [
18
] ,
"contractKind" : "contract" ,
"documentation" : "@title Social Recovery Extension - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - <stefan@gnosis.pm>" ,
"fullyImplemented" : true ,
"id" : 1759 ,
"linearizedBaseContracts" : [
1759 ,
18
] ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
"id" : 1427 ,
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "310:57:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1425 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "310:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "536f6369616c205265636f7665727920457874656e73696f6e" ,
"id" : 1426 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "340:27:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_995be5b755f102e2c36520d5037cfd901f504498d7c57ded40542623e7cc2eda" ,
"typeString" : "literal_string \"Social Recovery Extension\""
} ,
"value" : "Social Recovery Extension"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1430 ,
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "373:40:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string memory"
} ,
"typeName" : {
"id" : 1428 ,
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "373:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string storage pointer"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
"id" : 1429 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "406:7:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
"id" : 1433 ,
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "419:72:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1431 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "419:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "54e99c6e" ,
"id" : 1432 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "478:13:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c9d777df93ed5e148240dbbfbc0215def5044b10739d563ea8310789d1317911" ,
"typeString" : "literal_string (contains invalid UTF-8 sequence at position 4)"
} ,
"value" : null
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1435 ,
"name" : "masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "498:34:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1434 ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1759 ,
"src" : "498:23:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1437 ,
"name" : "gnosisSafe" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "538:28:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1436 ,
"name" : "GnosisSafe" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 963 ,
"src" : "538:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1439 ,
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "572:22:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1438 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "572:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1442 ,
"name" : "friends" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "600:24:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
} ,
"typeName" : {
"baseType" : {
"id" : 1440 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "600:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1441 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "600:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1446 ,
"name" : "isFriend" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "695:41:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
"id" : 1445 ,
"keyType" : {
"id" : 1443 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "704:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "695:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
"id" : 1444 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "715:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1450 ,
"name" : "isExecuted" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "804:43:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"typeName" : {
"id" : 1449 ,
"keyType" : {
"id" : 1447 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "813:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
"src" : "804:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"valueType" : {
"id" : 1448 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "824:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
"id" : 1456 ,
"name" : "isConfirmed" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1759 ,
"src" : "939:65:6" ,
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"typeName" : {
"id" : 1455 ,
"keyType" : {
"id" : 1451 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "948:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
"src" : "939:46:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"valueType" : {
"id" : 1454 ,
"keyType" : {
"id" : 1452 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "968:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
"src" : "959:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
"id" : 1453 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "979:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1468 ,
"nodeType" : "Block" ,
"src" : "1037:70:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1464 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1459 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "1055:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1460 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1055:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1462 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "1077:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1461 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1069:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1463 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1069:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "1055:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1458 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1047:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1465 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1047:42:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1466 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1047:42:6"
} ,
{
"id" : 1467 ,
"nodeType" : "PlaceholderStatement" ,
"src" : "1099:1:6"
}
]
} ,
"id" : 1469 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
"id" : 1457 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1034:2:6"
} ,
"src" : "1011:96:6" ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1479 ,
"nodeType" : "Block" ,
"src" : "1135:57:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1472 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "1153:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1475 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1473 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "1162:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1474 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "1162:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "1153:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1471 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1145:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1476 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1145:29:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1477 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1145:29:6"
} ,
{
"id" : 1478 ,
"nodeType" : "PlaceholderStatement" ,
"src" : "1184:1:6"
}
]
} ,
"id" : 1480 ,
"name" : "onlyFriend" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
"id" : 1470 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1132:2:6"
} ,
"src" : "1113:79:6" ,
"visibility" : "internal"
} ,
{
"body" : {
"id" : 1493 ,
"nodeType" : "Block" ,
"src" : "1476:44:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1489 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1483 ,
"src" : "1492:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
{
"argumentTypes" : null ,
"id" : 1490 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1485 ,
"src" : "1502:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
{
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
] ,
"id" : 1488 ,
"name" : "setup" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1577 ,
"src" : "1486:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$returns$__$" ,
"typeString" : "function (address[] memory,uint8)"
}
} ,
"id" : 1491 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1486:27:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1492 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1486:27:6"
}
]
} ,
"id" : 1494 ,
"implemented" : true ,
"isConstructor" : true ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1486 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1483 ,
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1494 ,
"src" : "1419:18:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1481 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1419:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1482 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1419:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1485 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1494 ,
"src" : "1439:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1484 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1439:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1418:38:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1487 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1476:0:6"
} ,
"scope" : 1759 ,
"src" : "1386:134:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1576 ,
"nodeType" : "Block" ,
"src" : "1789:597:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1507 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1504 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "1951:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1503 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "1943:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1505 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1943:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1506 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "1966:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "1943:24:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1502 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1935:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1508 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1935:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1509 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1935:33:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1514 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1511 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1499 ,
"src" : "1986:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1512 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2000:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1513 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2000:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "1986:29:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1510 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "1978:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1515 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "1978:38:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1516 ,
"nodeType" : "ExpressionStatement" ,
"src" : "1978:38:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"id" : 1520 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1518 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1499 ,
"src" : "2034:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "32" ,
"id" : 1519 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2048:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_2_by_1" ,
"typeString" : "int_const 2"
} ,
"value" : "2"
} ,
"src" : "2034:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1517 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2026:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1521 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2026:24:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1522 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2026:24:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1528 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1523 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "2060:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1525 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "2084:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1526 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2084:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"id" : 1524 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "2073:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1527 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2073:22:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"src" : "2060:35:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
} ,
"id" : 1529 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2060:35:6"
} ,
{
"body" : {
"id" : 1566 ,
"nodeType" : "Block" ,
"src" : "2183:137:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1546 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1542 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2205:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1544 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1543 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2214:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2205:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1545 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2220:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2205:16:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1541 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2197:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1547 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2197:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1548 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2197:25:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1555 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "2244:22:6" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1550 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "2245:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1554 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1551 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2254:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1553 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1552 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2263:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2254:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2245:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1549 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2236:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1556 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2236:31:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1557 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2236:31:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1564 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1558 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "2281:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1562 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1559 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2290:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1561 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1560 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2299:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2290:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2281:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1563 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2305:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "2281:28:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1565 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2281:28:6"
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1537 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1534 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2157:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1535 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2161:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"id" : 1536 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2161:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "2157:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1567 ,
"initializationExpression" : {
"assignments" : [
1531
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1531 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1577 ,
"src" : "2142:9:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1530 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2142:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1533 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1532 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2154:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "2142:13:6"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1539 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "2178:3:6" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1538 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1531 ,
"src" : "2178:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1540 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2178:3:6"
} ,
"nodeType" : "ForStatement" ,
"src" : "2137:183:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1570 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1568 ,
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1442 ,
"src" : "2329:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1569 ,
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1497 ,
"src" : "2339:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
"src" : "2329:18:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1571 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2329:18:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1574 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1572 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1439 ,
"src" : "2357:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1573 ,
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1499 ,
"src" : "2369:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "2357:22:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"id" : 1575 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2357:22:6"
}
]
} ,
"id" : 1577 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1500 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1497 ,
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1577 ,
"src" : "1732:18:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
} ,
"typeName" : {
"baseType" : {
"id" : 1495 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1732:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"id" : 1496 ,
"length" : null ,
"nodeType" : "ArrayTypeName" ,
"src" : "1732:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[] storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1499 ,
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1577 ,
"src" : "1752:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
"id" : 1498 ,
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "1752:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "1731:38:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1501 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "1789:0:6"
} ,
"scope" : 1759 ,
"src" : "1717:669:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1596 ,
"nodeType" : "Block" ,
"src" : "2637:85:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1589 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1586 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1579 ,
"src" : "2663:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
] ,
"id" : 1585 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2655:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1587 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2655:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1588 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2679:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "2655:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1584 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2647:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1590 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2647:34:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1591 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2647:34:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1594 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"id" : 1592 ,
"name" : "masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1435 ,
"src" : "2691:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"id" : 1593 ,
"name" : "_masterCopy" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1579 ,
"src" : "2704:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"src" : "2691:24:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"id" : 1595 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2691:24:6"
}
]
} ,
"id" : 1597 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1582 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1581 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1469 ,
"src" : "2618:14:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2618:14:6"
}
] ,
"name" : "changeMasterCopy" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1580 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1579 ,
"name" : "_masterCopy" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1597 ,
"src" : "2558:35:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1578 ,
"name" : "SocialRecoveryExtension" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 1759 ,
"src" : "2558:23:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_SocialRecoveryExtension_$1759" ,
"typeString" : "contract SocialRecoveryExtension"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2557:37:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1583 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2637:0:6"
} ,
"scope" : 1759 ,
"src" : "2532:190:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1620 ,
"nodeType" : "Block" ,
"src" : "2919:97:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1608 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "2937:21:6" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1605 ,
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1450 ,
"src" : "2938:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
"id" : 1607 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1606 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1599 ,
"src" : "2949:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2938:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1604 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "2929:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1609 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2929:30:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1610 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2929:30:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"id" : 1618 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1611 ,
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1456 ,
"src" : "2969:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
"id" : 1615 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1612 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1599 ,
"src" : "2981:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "2969:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1616 ,
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1613 ,
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2089 ,
"src" : "2991:3:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
"id" : 1614 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2991:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "2969:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1617 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3005:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "2969:40:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1619 ,
"nodeType" : "ExpressionStatement" ,
"src" : "2969:40:6"
}
]
} ,
"id" : 1621 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1602 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1601 ,
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1480 ,
"src" : "2904:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "2904:10:6"
}
] ,
"name" : "confirmTransaction" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1600 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1599 ,
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1621 ,
"src" : "2863:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1598 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "2863:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "2862:18:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1603 ,
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
"src" : "2919:0:6"
} ,
"scope" : 1759 ,
"src" : "2835:181:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1702 ,
"nodeType" : "Block" ,
"src" : "3578:742:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1639 ,
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1446 ,
"src" : "3660:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1641 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1640 ,
"name" : "sender" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1623 ,
"src" : "3669:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "3660:16:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1638 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3652:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1642 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3652:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1643 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3652:25:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"id" : 1649 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1645 ,
"name" : "to" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1625 ,
"src" : "3695:2:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1647 ,
"name" : "gnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1437 ,
"src" : "3709:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_GnosisSafe_$963" ,
"typeString" : "contract GnosisSafe"
}
] ,
"id" : 1646 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "3701:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1648 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3701:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"src" : "3695:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1644 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3687:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1650 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3687:34:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1651 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3687:34:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1655 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1653 ,
"name" : "value" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1627 ,
"src" : "3739:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1654 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "3748:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"src" : "3739:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1652 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3731:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1656 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3731:19:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1657 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3731:19:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"id" : 1663 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1659 ,
"name" : "operation" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1631 ,
"src" : "3768:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1660 ,
"name" : "GnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 963 ,
"src" : "3781:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_GnosisSafe_$963_$" ,
"typeString" : "type(contract GnosisSafe)"
}
} ,
"id" : 1661 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 61 ,
"src" : "3781:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$61_$" ,
"typeString" : "type(enum GnosisSafe.Operation)"
}
} ,
"id" : 1662 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "3781:25:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"src" : "3768:38:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1658 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "3760:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1664 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "3760:47:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1665 ,
"nodeType" : "ExpressionStatement" ,
"src" : "3760:47:6"
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1667 ,
"name" : "functionIdentifier" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3890:25:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
"id" : 1666 ,
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3890:6:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1668 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "3890:25:6"
} ,
{
"externalReferences" : [
{
"functionIdentifier" : {
"declaration" : 1667 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3948:18:6" ,
"valueSize" : 1
}
} ,
{
"data" : {
"declaration" : 1629 ,
"isOffset" : false ,
"isSlot" : false ,
"src" : "3980:4:6" ,
"valueSize" : 1
}
}
] ,
"id" : 1669 ,
"nodeType" : "InlineAssembly" ,
"operations" : "{\n functionIdentifier := mload(add(data, 0x20))\n}" ,
"src" : "3925:93:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"id" : 1673 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1671 ,
"name" : "functionIdentifier" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1667 ,
"src" : "4019:18:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1672 ,
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1433 ,
"src" : "4041:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"src" : "4019:55:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
"id" : 1670 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2092 ,
"src" : "4011:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
"id" : 1674 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4011:64:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
"id" : 1675 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4011:64:6"
} ,
{
"assignments" : [
1677
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1677 ,
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "4085:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1676 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4085:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1681 ,
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1679 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1629 ,
"src" : "4116:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
"id" : 1678 ,
"name" : "getDataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1758 ,
"src" : "4104:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$" ,
"typeString" : "function (bytes memory) view returns (bytes32)"
}
} ,
"id" : 1680 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4104:17:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4085:36:6"
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"id" : 1689 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1685 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
"src" : "4138:21:6" ,
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1682 ,
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1450 ,
"src" : "4139:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
"id" : 1684 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1683 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1677 ,
"src" : "4150:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4139:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "&&" ,
"rightExpression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1687 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1677 ,
"src" : "4204:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
] ,
"id" : 1686 ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1746 ,
"src" : "4175:28:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes32_$returns$_t_bool_$" ,
"typeString" : "function (bytes32) view returns (bool)"
}
} ,
"id" : 1688 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "4175:38:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"src" : "4138:75:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1699 ,
"nodeType" : "IfStatement" ,
"src" : "4131:161:6" ,
"trueBody" : {
"id" : 1698 ,
"nodeType" : "Block" ,
"src" : "4215:77:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"id" : 1694 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1690 ,
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1450 ,
"src" : "4229:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
"id" : 1692 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1691 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1677 ,
"src" : "4240:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
"src" : "4229:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1693 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4252:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"src" : "4229:27:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1695 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4229:27:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1696 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4277:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1637 ,
"id" : 1697 ,
"nodeType" : "Return" ,
"src" : "4270:11:6"
}
]
}
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1700 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4308:5:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1637 ,
"id" : 1701 ,
"nodeType" : "Return" ,
"src" : "4301:12:6"
}
]
} ,
"id" : 1703 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : [ ] ,
"id" : 1634 ,
"modifierName" : {
"argumentTypes" : null ,
"id" : 1633 ,
"name" : "onlyGnosisSafe" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1469 ,
"src" : "3536:14:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
"src" : "3536:14:6"
}
] ,
"name" : "isExecutable" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1632 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1623 ,
"name" : "sender" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3426:14:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1622 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3426:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1625 ,
"name" : "to" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3442:10:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
"id" : 1624 ,
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3442:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1627 ,
"name" : "value" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3454:13:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1626 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3454:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1629 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3469:10:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
"typeName" : {
"id" : 1628 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3469:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
"id" : 1631 ,
"name" : "operation" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3481:30:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
} ,
"typeName" : {
"contractScope" : null ,
"id" : 1630 ,
"name" : "GnosisSafe.Operation" ,
"nodeType" : "UserDefinedTypeName" ,
"referencedDeclaration" : 61 ,
"src" : "3481:20:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$61" ,
"typeString" : "enum GnosisSafe.Operation"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3425:87:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1637 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1636 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1703 ,
"src" : "3568:4:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1635 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "3568:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "3567:6:6"
} ,
"scope" : 1759 ,
"src" : "3404:916:6" ,
"stateMutability" : "nonpayable" ,
"superFunction" : 17 ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1745 ,
"nodeType" : "Block" ,
"src" : "4592:294:6" ,
"statements" : [
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
"id" : 1711 ,
"name" : "confirmationCount" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4602:25:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1710 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4602:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1712 ,
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4602:25:6"
} ,
{
"body" : {
"id" : 1741 ,
"nodeType" : "Block" ,
"src" : "4682:176:6" ,
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1724 ,
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1456 ,
"src" : "4700:11:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
"id" : 1726 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1725 ,
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1705 ,
"src" : "4712:8:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4700:21:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
"id" : 1730 ,
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"id" : 1727 ,
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1442 ,
"src" : "4722:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1729 ,
"indexExpression" : {
"argumentTypes" : null ,
"id" : 1728 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1714 ,
"src" : "4730:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4722:10:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
"src" : "4700:33:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1734 ,
"nodeType" : "IfStatement" ,
"src" : "4696:74:6" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1732 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "4751:19:6" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1731 ,
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1711 ,
"src" : "4751:17:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1733 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4751:19:6"
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1737 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1735 ,
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1711 ,
"src" : "4788:17:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
"id" : 1736 ,
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1439 ,
"src" : "4809:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"src" : "4788:30:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
"id" : 1740 ,
"nodeType" : "IfStatement" ,
"src" : "4784:63:6" ,
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
"id" : 1738 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4843:4:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
"functionReturnParameters" : 1709 ,
"id" : 1739 ,
"nodeType" : "Return" ,
"src" : "4836:11:6"
}
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"id" : 1720 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
"id" : 1717 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1714 ,
"src" : "4657:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1718 ,
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1442 ,
"src" : "4661:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"id" : 1719 ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "4661:14:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"src" : "4657:18:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"id" : 1742 ,
"initializationExpression" : {
"assignments" : [
1714
] ,
"declarations" : [
{
"constant" : false ,
"id" : 1714 ,
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4642:9:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
"id" : 1713 ,
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4642:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"id" : 1716 ,
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1715 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4654:1:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
"src" : "4642:13:6"
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
"id" : 1722 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
"src" : "4677:3:6" ,
"subExpression" : {
"argumentTypes" : null ,
"id" : 1721 ,
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1714 ,
"src" : "4677:1:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"id" : 1723 ,
"nodeType" : "ExpressionStatement" ,
"src" : "4677:3:6"
} ,
"nodeType" : "ForStatement" ,
"src" : "4637:221:6"
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
"id" : 1743 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "4874:5:6" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
"functionReturnParameters" : 1709 ,
"id" : 1744 ,
"nodeType" : "Return" ,
"src" : "4867:12:6"
}
]
} ,
"id" : 1746 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1706 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1705 ,
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4519:16:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1704 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4519:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4518:18:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1709 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1708 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1746 ,
"src" : "4582:4:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
"id" : 1707 ,
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "4582:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "4581:6:6"
} ,
"scope" : 1759 ,
"src" : "4481:405:6" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
"id" : 1757 ,
"nodeType" : "Block" ,
"src" : "5106:39:6" ,
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1754 ,
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 1748 ,
"src" : "5133:4:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
"id" : 1753 ,
"name" : "keccak256" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 2083 ,
"src" : "5123:9:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_function_sha3_pure$__$returns$_t_bytes32_$" ,
"typeString" : "function () pure returns (bytes32)"
}
} ,
"id" : 1755 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "5123:15:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"functionReturnParameters" : 1752 ,
"id" : 1756 ,
"nodeType" : "Return" ,
"src" : "5116:22:6"
}
]
} ,
"id" : 1758 ,
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getDataHash" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
"id" : 1749 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1748 ,
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1758 ,
"src" : "5036:10:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
"typeName" : {
"id" : 1747 ,
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5036:5:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes storage pointer"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5035:12:6"
} ,
"payable" : false ,
"returnParameters" : {
"id" : 1752 ,
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
"id" : 1751 ,
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
"scope" : 1758 ,
"src" : "5093:7:6" ,
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
"id" : 1750 ,
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
"src" : "5093:7:6" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
"src" : "5092:9:6"
} ,
"scope" : 1759 ,
"src" : "5015:130:6" ,
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
"scope" : 1760 ,
"src" : "257:4890:6"
}
] ,
"src" : "0:5148:6"
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.19+commit.c4cbbb05.Emscripten.clang"
} ,
"networks" : {
"4" : {
"events" : { } ,
"links" : { } ,
"address" : "0x0297aeb84568d3ab9d7b382240250dd0db22e05d" ,
"transactionHash" : "0x85a0a0d054ba5a10091dabe072894eb0bc5f45b84927e8313094a600cabff0c6"
} ,
"42" : {
"events" : { } ,
"links" : { } ,
"address" : "0x1f3c28359e6018304b28fa46f5ef87f4b295939c" ,
"transactionHash" : "0x9c32de35cd9321dbb7c9bb2aa35fd3a4199b08db6aae909ace4a5bf93392fd87"
} ,
"1525342778744" : {
"events" : { } ,
"links" : { } ,
"address" : "0x38ba6d49ff8d62e729429947e2381f8e1b01933b" ,
"transactionHash" : "0x6ade3e6ed704785b52fedb81d093263eeaccdcb3dd3883a7c040679c6c8096fc"
2018-05-08 14:41:03 +00:00
} ,
"1525789101965" : {
"events" : { } ,
"links" : { } ,
"address" : "0xf24ba0f83a48b995c7cac0d028e7db00bad3e42c" ,
"transactionHash" : "0xeae217ba71df737e9f757f2a8918a4fe5f0e1c862ebe2a74f655e8f7ae25be15"
2018-05-04 14:04:04 +00:00
}
} ,
"schemaVersion" : "2.0.0" ,
2018-05-08 14:41:03 +00:00
"updatedAt" : "2018-05-08T14:18:44.029Z"
2018-05-04 14:04:04 +00:00
}