2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"contractName" : "SocialRecoveryModule" ,
2018-05-04 14:04:04 +00:00
"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"
} ,
2018-05-10 11:12:13 +00:00
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "manager" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
2018-05-04 14:04:04 +00:00
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"name" : "isFriend" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
2018-05-10 11:12:13 +00:00
"constant" : false ,
"inputs" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"name" : "_masterCopy" ,
"type" : "address"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "changeMasterCopy" ,
"outputs" : [ ] ,
2018-05-04 14:04:04 +00:00
"payable" : false ,
2018-05-10 11:12:13 +00:00
"stateMutability" : "nonpayable" ,
2018-05-04 14:04:04 +00:00
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
2018-05-10 11:12:13 +00:00
"name" : "NAME" ,
2018-05-04 14:04:04 +00:00
"outputs" : [
{
"name" : "" ,
2018-05-10 11:12:13 +00:00
"type" : "string"
2018-05-04 14:04:04 +00:00
}
] ,
"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"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "_friends" ,
"type" : "address[]"
} ,
{
"name" : "_threshold" ,
"type" : "uint8"
}
] ,
"name" : "setup" ,
"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" : "data" ,
"type" : "bytes"
}
] ,
2018-05-10 11:12:13 +00:00
"name" : "recoverAccess" ,
"outputs" : [ ] ,
2018-05-04 14:04:04 +00:00
"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"
}
] ,
2018-05-16 13:46:33 +00:00
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 5061113 b 806100206000396000 f 3006080604052600436106100 d b 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806336749 c 1 a 146100e05780633 c f 5 b 3091461014957806342 c d e 4e8146101 b c 578063481 c 6 a 75146101 e d 57806368125 a 1 b 1461024457806379716e431461029 f 5780637 d e 7 e d e f 146102 d 0 5780639 c a 89 d 0 d 14610313578063 a 3 f 4 d f 7e1461035 c 578063 a e 68 b 0 56146103 e c 578063 b 79 f f a f f 14610471578063 c e 146828146104 d a 578063 d 2740 c 7614610547578063e52 c b 36 a 146105 b 0 578063 f f a 1 a d 74146105 f 9575 b 600080 f d 5 b 3480156100 e c 57600080 f d 5 b 506100 f 5610689565 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 34801561015557600080 f d 5 b 506101 b a 60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560 f f 1690602001909291905050506106 a d 565 b 0 0 5 b 3480156101 c 857600080 f d 5 b 506101 d 1610822565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 3480156101 f 957600080 f d 5 b 50610202610835565 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 34801561025057600080 f d 5 b 50610285600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061085 b 565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156102 a b 57600080 f d 5 b 506102 c e 600480360381019080803560001916906020019092919050505061087 b 565 b 0 0 5 b 3480156102 d c 57600080 f d 5 b 50610311600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061097 c 565 b 0 0 5 b 34801561031 f 57600080 f d 5 b 506103426004803603810190808035600019169060200190929190505050610 a 41565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561036857600080 f d 5 b 50610371610 b 40565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156103 b 1578082015181840152602081019050610396565 b 50505050905090810190601 f 1680156103 d e 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 3480156103 f 857600080 f d 5 b 50610453600480360381019080803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610 b 79565 b 60405180826000191660001916815260200191505060405180910390 f 35 b 34801561047 d 57600080 f d 5 b 506104 c 0 6004803603810190808035600019169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610 b e 5565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156104e657600080 f d 5 b 5061050560048036038101908080359060200190929190505050610 c 14565 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 34801561055357600080 f d 5 b 506105 a e 600480360381019080803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610 c 52565 b 0 0 5 b 3480156105 b c 57600080 f d 5 b 506105 d f 6004803603810190808035600019169060200190929190505050610 f 5 f 565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561060557600080 f d 5 b 5061060e610 f 7 f 565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561064e578082015181840152602081019050610633565 b 50505050905090810190601 f 16801561067 b 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 7 f e 318 b 52 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81565 b 60008083518360 f f 16111515156106 c 357600080 f d 5 b 60028360 f f 16101515156106 d 657600080 f d 5 b 6106 d e 610 f b 8565 b 600091505 b 83518210156107 e a 5783828151811015156106 f a 57 f e 5 b 90602001906020020151905060008173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415151561072 c 57600080 f d 5 b 600360008273 f f f f f f f f f f f f f f f f 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 1615151561078557600080 f d 5 b 6001600360008373 f f f f f f f f f f f f f f f f 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 219169083
"deployedBytecode" : " 0 x 6080604052600436106100 d b 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806336749 c 1 a 146100e05780633 c f 5 b 3091461014957806342 c d e 4e8146101 b c 578063481 c 6 a 75146101 e d 57806368125 a 1 b 1461024457806379716e431461029 f 5780637 d e 7 e d e f 146102 d 0 5780639 c a 89 d 0 d 14610313578063 a 3 f 4 d f 7e1461035 c 578063 a e 68 b 0 56146103 e c 578063 b 79 f f a f f 14610471578063 c e 146828146104 d a 578063 d 2740 c 7614610547578063e52 c b 36 a 146105 b 0 578063 f f a 1 a d 74146105 f 9575 b 600080 f d 5 b 3480156100 e c 57600080 f d 5 b 506100 f 5610689565 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 34801561015557600080 f d 5 b 506101 b a 60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560 f f 1690602001909291905050506106 a d 565 b 0 0 5 b 3480156101 c 857600080 f d 5 b 506101 d 1610822565 b 604051808260 f f 1660 f f 16815260200191505060405180910390 f 35 b 3480156101 f 957600080 f d 5 b 50610202610835565 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 34801561025057600080 f d 5 b 50610285600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061085 b 565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156102 a b 57600080 f d 5 b 506102 c e 600480360381019080803560001916906020019092919050505061087 b 565 b 0 0 5 b 3480156102 d c 57600080 f d 5 b 50610311600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061097 c 565 b 0 0 5 b 34801561031 f 57600080 f d 5 b 506103426004803603810190808035600019169060200190929190505050610 a 41565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561036857600080 f d 5 b 50610371610 b 40565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156103 b 1578082015181840152602081019050610396565 b 50505050905090810190601 f 1680156103 d e 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 3480156103 f 857600080 f d 5 b 50610453600480360381019080803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610 b 79565 b 60405180826000191660001916815260200191505060405180910390 f 35 b 34801561047 d 57600080 f d 5 b 506104 c 0 6004803603810190808035600019169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050610 b e 5565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156104e657600080 f d 5 b 5061050560048036038101908080359060200190929190505050610 c 14565 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 34801561055357600080 f d 5 b 506105 a e 600480360381019080803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610 c 52565 b 0 0 5 b 3480156105 b c 57600080 f d 5 b 506105 d f 6004803603810190808035600019169060200190929190505050610 f 5 f 565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561060557600080 f d 5 b 5061060e610 f 7 f 565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 8381101561064e578082015181840152602081019050610633565 b 50505050905090810190601 f 16801561067 b 5780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 7 f e 318 b 52 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81565 b 60008083518360 f f 16111515156106 c 357600080 f d 5 b 60028360 f f 16101515156106 d 657600080 f d 5 b 6106 d e 610 f b 8565 b 600091505 b 83518210156107 e a 5783828151811015156106 f a 57 f e 5 b 90602001906020020151905060008173 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 161415151561072 c 57600080 f d 5 b 600360008273 f f f f f f f f f f f f f f f f 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 1615151561078557600080 f d 5 b 6001600360008373 f f f f f f f f f f f f f f f f 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 2191690831515021790555081806001019250506106e3565 b 8360029080519060
"sourceMap" : "306:3542:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3542:12;;;;;;;" ,
"deployedSourceMap" : " 306 : 3542 : 12 : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 459 : 72 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 459 : 72 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1253 : 494 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 1253 : 494 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 538 : 22 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 538 : 22 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 262 : 28 : 5 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 262 : 28 : 5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 661 : 41 : 12 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 661 : 41 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1860 : 181 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 1860 : 181 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 626 : 208 : 4 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 626 : 208 : 4 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3182 : 405 : 12 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 3182 : 405 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 353 : 54 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 353 : 54 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 10 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 : 11 ; 84 : 18 ; 80 : 1 ; 75 : 3 ; 71 : 11 ; 64 : 39 ; 52 : 2 ; 49 : 1 ; 45 : 10 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 353 : 54 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3716 : 130 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 3716 : 130 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 905 : 65 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 905 : 65 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 566 : 24 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 566 : 24 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2245 : 776 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 2245 : 776 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 770 : 43 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 770 : 43 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 413 : 40 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 413 : 40 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 23 : 1 : -1 ; 8 : 100 ; 33 : 3 ; 30 : 1 ; 27 : 10 ; 8 : 100 ; ; ; 99 : 1 ; 94 : 3 ; 90 : 11 ; 84 : 18 ; 80 : 1 ; 75 : 3 ; 71 : 11 ; 64 : 39 ; 52 : 2 ; 49 : 1 ; 45 : 10 ; 40 : 15 ; ; 8 : 100 ; ; ; 12 : 14 ; 413 : 40 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 459 : 72 ; ; ; : : : o ; 1253 : 494 : : - ; 1476 : 9 ; 1531 : 14 ; 1357 : 8 ; : 15 ; 1343 : 10 ; : 29 ; ; ; ; 1335 : 38 ; ; ; ; ; ; ; ; 1405 : 1 ; 1391 : 10 ; : 15 ; ; ; ; 1383 : 24 ; ; ; ; ; ; ; ; 1417 : 12 ; : 10 ; : 12 : : i ; : : : - ; 1488 : 1 ; 1476 : 13 ; ; 1471 : 210 ; 1495 : 8 ; : 15 ; 1491 : 1 ; : 19 ; 1471 : 210 ; ; ; 1548 : 8 ; 1557 : 1 ; 1548 : 11 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1531 : 28 ; ; 1591 : 1 ; 1581 : 6 ; : 11 ; ; ; ; 1573 : 20 ; ; ; ; ; ; ; ; 1616 : 8 ; : 16 ; 1625 : 6 ; 1616 : 16 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1615 : 17 ; 1607 : 26 ; ; ; ; ; ; ; ; 1666 : 4 ; 1647 : 8 ; : 16 ; 1656 : 6 ; 1647 : 16 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 23 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1512 : 3 ; ; ; ; ; ; ; 1471 : 210 ; ; ; 1700 : 8 ; 1690 : 7 ; : 18 ; ; ; ; ; ; ; ; ; ; ; ; : : : i ; : : : - ; ; 1730 : 10 ; 1718 : 9 ; ; : 22 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1253 : 494 ; ; ; ; : : : o ; 538 : 22 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 262 : 28 : 5 : - ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 661 : 41 : 12 : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 1860 : 181 : : - ; 1017 : 8 ; : 20 ; 1026 : 10 ; 1017 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1009 : 29 ; ; ; ; ; ; ; ; 1963 : 10 ; : 20 ; 1974 : 8 ; 1963 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1962 : 21 ; 1954 : 30 ; ; ; ; ; ; ; ; 2030 : 4 ; 1994 : 11 ; : 21 ; 2006 : 8 ; 1994 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 33 ; 2016 : 10 ; 1994 : 33 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 40 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1860 : 181 ; : : : o ; 626 : 208 : 4 : - ; 359 : 7 : 5 ; ; ; ; ; ; ; ; ; ; ; 337 : 30 ; ; : 10 ; : 30 ; ; ; 329 : 39 ; ; ; ; ; ; ; ; 791 : 1 : 4 ; 776 : 11 ; : 16 ; ; ; ; 768 : 25 ; ; ; ; ; ; ; ; 816 : 11 ; 803 : 10 ; ; : 24 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 626 : 208 ; : : : o ; 3182 : 405 : 12 : - ; 3283 : 4 ; 3303 : 25 ; 3343 : 9 ; 3355 : 1 ; 3343 : 13 ; ; 3338 : 221 ; 3362 : 7 ; : 14 ; ; ; ; 3358 : 1 ; : 18 ; 3338 : 221 ; ; ; 3401 : 11 ; : 21 ; 3413 : 8 ; 3401 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 33 ; 3423 : 7 ; 3431 : 1 ; 3423 : 10 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3401 : 33 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3397 : 74 ; ; ; 3452 : 19 ; ; ; ; ; ; ; 3397 : 74 ; 3510 : 9 ; ; ; ; ; ; ; ; ; ; ; 3489 : 30 ; ; : 17 ; : 30 ; 3485 : 63 ; ; ; 3544 : 4 ; 3537 : 11 ; ; ; ; 3485 : 63 ; 3378 : 3 ; ; ; ; ; ; ; 3338 : 221 ; ; ; 3575 : 5 ; 3568 : 12 ; ; 3182 : 405 ; ; ; ; ; ; : : : o ; 353 : 54 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 3716 : 130 : : - ; 3794 : 7 ; 3834 : 4 ; 3824 : 15 ; ; ; ; ; ; ; ; ; ; ; ; ; 36 : 153 : -1 ; 66 : 2 ; 61 : 3 ; 58 : 11 ; 51 : 19 ; 36 : 153 ; ; ; 182 : 3 ; 176 : 10 ; 171 : 3 ; 164 : 23 ; 98 : 2 ; 93 : 3 ; 89 : 12 ; 82 : 19 ; ; 123 : 2 ; 118 : 3 ; 114 : 12 ; 107 : 19 ; ; 148 : 2 ; 143 : 3 ; 139 : 12 ; 132 : 19 ; ; 36 : 153 ; ; ; 274 : 1 ; 267 : 3 ; 263 : 2 ; 259 : 12 ; 254 : 3 ; 250 : 22 ; 246 : 30 ; 315 : 4 ; 311 : 9 ; 305 : 3 ; 299 : 10 ; 295 : 26 ; 356 : 4 ; 350 : 3 ; 344 : 10 ; 340 : 21 ; 389 : 7 ; 380 ; 377 : 20 ; 372 : 3 ; 365 : 33 ; 3 : 399 ; ; ; 3824 : 15 : 12 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3817 : 22 ; ; 3716 : 130 ; ; ; : : : o ; 905 : 65 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 566 : 24 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 2245 : 776 : : - ; 2485 : 25 ; 2744 : 16 ; 2381 : 8 ; : 20 ; 2390 : 10 ; 2381 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2373 : 29 ; ; ; ; ; ; ; ; 2645 : 4 ; 2639 ; 2635 : 15 ; 2629 : 22 ; 2607 : 44 ; ; 2700 : 33 ; 2678 : 55 ; ; ; : 18 ; : 55 ; ; ; ; 2670 :
"source" : "pragma solidity 0.4.23;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.0.1\";\n bytes4 public constant REPLACE_OWNER_FUNCTION_IDENTIFIER = hex\"e318b52b\";\n\n uint8 public threshold;\n address[] public friends;\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 onlyFriend() {\n require(isFriend[msg.sender]);\n _;\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 require(_threshold <= _friends.length);\n require(_threshold >= 2);\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0);\n require(!isFriend[friend]);\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\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 data Encoded owner replacement transaction.\n /// @return Returns if transaction can be executed.\n function recoverAccess(bytes data)\n public\n {\n // Only friends are allowed to execute the replacement.\n require(isFriend[msg.sender]);\n // Validate that transaction is a owner replacement transaction.\n bytes4 functionIdentifier;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n functionIdentifier := mload(add(data, 0x20))\n }\n require(functionIdentifier == REPLACE_OWNER_FUNCTION_IDENTIFIER);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash]);\n require(isConfirmedByRequiredFriends(dataHash));\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call));\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes data)\n public\n view\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n" ,
2018-05-10 11:12:13 +00:00
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol" ,
2018-05-04 14:04:04 +00:00
"ast" : {
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol" ,
2018-05-04 14:04:04 +00:00
"exportedSymbols" : {
2018-05-10 11:12:13 +00:00
"SocialRecoveryModule" : [
2018-05-16 13:46:33 +00:00
2035
2018-05-04 14:04:04 +00:00
]
} ,
2018-05-16 13:46:33 +00:00
"id" : 2036 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-05-16 13:46:33 +00:00
"id" : 1777 ,
2018-05-04 14:04:04 +00:00
"literals" : [
"solidity" ,
"0.4" ,
2018-05-10 11:12:13 +00:00
".23"
2018-05-04 14:04:04 +00:00
] ,
"nodeType" : "PragmaDirective" ,
2018-05-16 13:46:33 +00:00
"src" : "0:23:12"
2018-05-10 11:12:13 +00:00
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "../Enum.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1778 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 7 ,
"src" : "24:21:12" ,
2018-05-10 11:12:13 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "../Module.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1779 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 622 ,
"src" : "46:23:12" ,
2018-05-10 11:12:13 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"file" : "../ModuleManager.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1780 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 972 ,
"src" : "70:30:12" ,
2018-05-04 14:04:04 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"file" : "../OwnerManager.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1781 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 1344 ,
"src" : "101:29:12" ,
2018-05-04 14:04:04 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
2018-05-04 14:04:04 +00:00
"baseName" : {
"contractScope" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1782 ,
2018-05-10 11:12:13 +00:00
"name" : "Module" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "UserDefinedTypeName" ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 621 ,
"src" : "339:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_contract$_Module_$621" ,
2018-05-10 11:12:13 +00:00
"typeString" : "contract Module"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1783 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-05-16 13:46:33 +00:00
"src" : "339:6:12"
2018-05-04 14:04:04 +00:00
}
] ,
"contractDependencies" : [
2018-05-16 13:46:33 +00:00
580 ,
621 ,
1359
2018-05-04 14:04:04 +00:00
] ,
"contractKind" : "contract" ,
2018-05-10 11:12:13 +00:00
"documentation" : "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - <stefan@gnosis.pm>" ,
2018-05-04 14:04:04 +00:00
"fullyImplemented" : true ,
2018-05-16 13:46:33 +00:00
"id" : 2035 ,
2018-05-04 14:04:04 +00:00
"linearizedBaseContracts" : [
2018-05-16 13:46:33 +00:00
2035 ,
621 ,
580 ,
1359
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"name" : "SocialRecoveryModule" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
2018-05-16 13:46:33 +00:00
"id" : 1786 ,
2018-05-04 14:04:04 +00:00
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "353:54:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1784 ,
2018-05-04 14:04:04 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "353:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "536f6369616c205265636f76657279204d6f64756c65" ,
2018-05-16 13:46:33 +00:00
"id" : 1785 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "383:24:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230" ,
"typeString" : "literal_string \"Social Recovery Module\""
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : "Social Recovery Module"
2018-05-04 14:04:04 +00:00
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-05-16 13:46:33 +00:00
"id" : 1789 ,
2018-05-04 14:04:04 +00:00
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "413:40:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1787 ,
2018-05-04 14:04:04 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "413:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
2018-05-16 13:46:33 +00:00
"id" : 1788 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "446:7:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-05-16 13:46:33 +00:00
"id" : 1792 ,
2018-05-04 14:04:04 +00:00
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "459:72:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1790 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "459:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"hexValue" : "e318b52b" ,
"id" : 1791 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "518:13:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_stringliteral_df42753442dae44b262788763363a184bfb8d0df593d5073d67844ce4b3a2d8b" ,
"typeString" : "literal_string (contains invalid UTF-8 sequence at position 2)"
2018-05-04 14:04:04 +00:00
} ,
"value" : null
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1794 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "538:22:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1793 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "538:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1797 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "566:24:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
"baseType" : {
2018-05-16 13:46:33 +00:00
"id" : 1795 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "566:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1796 ,
2018-05-04 14:04:04 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "566:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1801 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "661:41:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1800 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1798 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "670:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "661:25:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1799 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "681:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1805 ,
2018-05-04 14:04:04 +00:00
"name" : "isExecuted" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "770:43:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1804 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1802 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "779:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "770:25:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1803 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "790:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1811 ,
2018-05-04 14:04:04 +00:00
"name" : "isConfirmed" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "905:65:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1810 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1806 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "914:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "905:46:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1809 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1807 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "934:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "925:25:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1808 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "945:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1821 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "999:57:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1814 ,
2018-05-10 11:12:13 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "1017:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1817 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1815 ,
2018-05-04 14:04:04 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2396 ,
"src" : "1026:3:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1816 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "1026:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1017:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1813 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1009:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1818 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1009:29:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1819 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1009:29:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-16 13:46:33 +00:00
"id" : 1820 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "PlaceholderStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1048:1:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1822 ,
2018-05-10 11:12:13 +00:00
"name" : "onlyFriend" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ModifierDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1812 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "996:2:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"src" : "977:79:12" ,
2018-05-04 14:04:04 +00:00
"visibility" : "internal"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1892 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "1325:422:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1834 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1831 ,
2018-05-10 11:12:13 +00:00
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1827 ,
"src" : "1343:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1832 ,
2018-05-10 11:12:13 +00:00
"name" : "_friends" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1357:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1833 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "length" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "1357:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1343:29:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1830 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1335:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1835 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1335:38:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1836 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1335:38:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"commonType" : {
2018-05-04 14:04:04 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1840 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1838 ,
2018-05-10 11:12:13 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1827 ,
"src" : "1391:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
2018-05-10 11:12:13 +00:00
"operator" : ">=" ,
2018-05-04 14:04:04 +00:00
"rightExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "32" ,
2018-05-16 13:46:33 +00:00
"id" : 1839 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1405:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_rational_2_by_1" ,
"typeString" : "int_const 2"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : "2"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"src" : "1391:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1837 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1383:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1841 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1383:24:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1842 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1383:24:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [ ] ,
2018-05-04 14:04:04 +00:00
"expression" : {
2018-05-10 11:12:13 +00:00
"argumentTypes" : [ ] ,
2018-05-16 13:46:33 +00:00
"id" : 1843 ,
2018-05-10 11:12:13 +00:00
"name" : "setManager" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 620 ,
"src" : "1417:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_internal_nonpayable$__$returns$__$" ,
"typeString" : "function ()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1844 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1417:12:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1845 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1417:12:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1882 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "1517:164:12" ,
2018-05-10 11:12:13 +00:00
"statements" : [
2018-05-04 14:04:04 +00:00
{
2018-05-10 11:12:13 +00:00
"assignments" : [
2018-05-16 13:46:33 +00:00
1858
2018-05-10 11:12:13 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1858 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1531:14:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1857 ,
2018-05-10 11:12:13 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1531:7:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"id" : 1862 ,
2018-05-10 11:12:13 +00:00
"initialValue" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1859 ,
2018-05-10 11:12:13 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1548:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1861 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1860 ,
2018-05-10 11:12:13 +00:00
"name" : "i" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1847 ,
"src" : "1557:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1548:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-10 11:12:13 +00:00
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1531:28:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1866 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1864 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1858 ,
"src" : "1581:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-16 13:46:33 +00:00
"id" : 1865 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1591:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1581:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1863 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1573:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1867 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1573:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1868 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1573:20:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1873 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-16 13:46:33 +00:00
"src" : "1615:17:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1870 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "1616:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1872 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1871 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1858 ,
"src" : "1625:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1616:16:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1869 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1607:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1874 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1607:26:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1875 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1607:26:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1880 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1876 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "1647:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1878 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1877 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1858 ,
"src" : "1656:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1647:16:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 1879 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1666:4:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1647:23:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1881 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1647:23:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1853 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1850 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1847 ,
"src" : "1491:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1851 ,
2018-05-04 14:04:04 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1495:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1852 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "1495:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1491:19:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1883 ,
2018-05-04 14:04:04 +00:00
"initializationExpression" : {
"assignments" : [
2018-05-16 13:46:33 +00:00
1847
2018-05-04 14:04:04 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1847 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1476:9:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1846 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1476:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1849 ,
2018-05-04 14:04:04 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-16 13:46:33 +00:00
"id" : 1848 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1488:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1476:13:12"
2018-05-04 14:04:04 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1855 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-16 13:46:33 +00:00
"src" : "1512:3:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1854 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1847 ,
"src" : "1512:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1856 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1512:3:12"
2018-05-04 14:04:04 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1471:210:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1886 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1884 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1797 ,
"src" : "1690:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1885 ,
2018-05-04 14:04:04 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1700:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1690:18:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1887 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1690:18:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1890 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1888 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1794 ,
"src" : "1718:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1889 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1827 ,
"src" : "1730:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1718:22:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1891 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1718:22:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement." ,
2018-05-16 13:46:33 +00:00
"id" : 1893 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1828 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1825 ,
2018-05-04 14:04:04 +00:00
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1268:18:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
"baseType" : {
2018-05-16 13:46:33 +00:00
"id" : 1823 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1268:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1824 ,
2018-05-04 14:04:04 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1268:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1827 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1288:16:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1826 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1288:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "1267:38:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1829 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "1325:0:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "1253:494:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1916 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "1944:97:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1904 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-16 13:46:33 +00:00
"src" : "1962:21:12" ,
2018-05-10 11:12:13 +00:00
"subExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1901 ,
2018-05-10 11:12:13 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1805 ,
"src" : "1963:10:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1903 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1902 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1895 ,
"src" : "1974:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
2018-05-04 14:04:04 +00:00
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1963:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1900 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1954:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1905 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1954:30:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1906 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1954:30:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1914 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1907 ,
2018-05-04 14:04:04 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1811 ,
"src" : "1994:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1911 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1908 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1895 ,
"src" : "2006:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1994:21:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1912 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1909 ,
2018-05-04 14:04:04 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2396 ,
"src" : "2016:3:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1910 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "2016:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1994:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 1913 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "2030:4:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1994:40:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1915 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1994:40:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash." ,
2018-05-16 13:46:33 +00:00
"id" : 1917 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1898 ,
2018-05-04 14:04:04 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1897 ,
2018-05-04 14:04:04 +00:00
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1822 ,
"src" : "1929:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-05-16 13:46:33 +00:00
"src" : "1929:10:12"
2018-05-04 14:04:04 +00:00
}
] ,
"name" : "confirmTransaction" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1896 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1895 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1917 ,
"src" : "1888:16:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1894 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1888:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "1887:18:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1899 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "1944:0:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "1860:181:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1978 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "2299:722:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1923 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "2381:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1926 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1924 ,
2018-05-10 11:12:13 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2396 ,
"src" : "2390:3:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1925 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "2390:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "2381:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1922 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2373:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1927 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2373:29:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1928 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2373:29:12"
2018-05-10 11:12:13 +00:00
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1930 ,
2018-05-10 11:12:13 +00:00
"name" : "functionIdentifier" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1979 ,
"src" : "2485:25:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1929 ,
2018-05-10 11:12:13 +00:00
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "2485:6:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1931 ,
2018-05-10 11:12:13 +00:00
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2485:25:12"
2018-05-10 11:12:13 +00:00
} ,
{
"externalReferences" : [
{
"functionIdentifier" : {
2018-05-16 13:46:33 +00:00
"declaration" : 1930 ,
2018-05-10 11:12:13 +00:00
"isOffset" : false ,
"isSlot" : false ,
2018-05-16 13:46:33 +00:00
"src" : "2607:18:12" ,
2018-05-10 11:12:13 +00:00
"valueSize" : 1
}
} ,
{
"data" : {
2018-05-16 13:46:33 +00:00
"declaration" : 1919 ,
2018-05-10 11:12:13 +00:00
"isOffset" : false ,
"isSlot" : false ,
2018-05-16 13:46:33 +00:00
"src" : "2639:4:12" ,
2018-05-10 11:12:13 +00:00
"valueSize" : 1
}
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1932 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "InlineAssembly" ,
"operations" : "{\n functionIdentifier := mload(add(data, 0x20))\n}" ,
2018-05-16 13:46:33 +00:00
"src" : "2584:93:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1936 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1934 ,
2018-05-10 11:12:13 +00:00
"name" : "functionIdentifier" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1930 ,
"src" : "2678:18:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1935 ,
2018-05-10 11:12:13 +00:00
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1792 ,
"src" : "2700:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "2678:55:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1933 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2670:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1937 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2670:64:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1938 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2670:64:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"assignments" : [
2018-05-16 13:46:33 +00:00
1940
2018-05-10 11:12:13 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1940 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1979 ,
"src" : "2744:16:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1939 ,
2018-05-10 11:12:13 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "2744:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1944 ,
2018-05-10 11:12:13 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1942 ,
2018-05-10 11:12:13 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1919 ,
"src" : "2775:4:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1941 ,
2018-05-10 11:12:13 +00:00
"name" : "getDataHash" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2034 ,
"src" : "2763:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$" ,
"typeString" : "function (bytes memory) view returns (bytes32)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1943 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2763:17:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2744:36:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1949 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-16 13:46:33 +00:00
"src" : "2798:21:12" ,
2018-05-10 11:12:13 +00:00
"subExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1946 ,
2018-05-10 11:12:13 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1805 ,
"src" : "2799:10:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1948 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1947 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1940 ,
"src" : "2810:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
"isPure" : false ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "2799:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1945 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2790:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1950 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2790:30:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1951 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2790:30:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1954 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1940 ,
"src" : "2867:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1953 ,
2018-05-10 11:12:13 +00:00
"name" : "isConfirmedByRequiredFriends" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2022 ,
"src" : "2838:28:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_internal_view$_t_bytes32_$returns$_t_bool_$" ,
"typeString" : "function (bytes32) view returns (bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1955 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2838:38:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1952 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2830:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1956 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2830:47:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1957 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2830:47:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1962 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1958 ,
2018-05-10 11:12:13 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1805 ,
"src" : "2887:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1960 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1959 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1940 ,
"src" : "2898:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "2887:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 1961 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "2910:4:12" ,
2018-05-10 11:12:13 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"src" : "2887:27:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1963 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2887:27:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1968 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 588 ,
"src" : "2974:7:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$971" ,
"typeString" : "contract ModuleManager"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_ModuleManager_$971" ,
"typeString" : "contract ModuleManager"
}
] ,
"id" : 1967 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2966:7:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1969 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2966:16:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1970 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2984:1:12" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
{
"argumentTypes" : null ,
"id" : 1971 ,
"name" : "data" ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1919 ,
"src" : "2987:4:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1972 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 6 ,
"src" : "2993:4:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$6_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 1973 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 5 ,
"src" : "2993:14:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$5_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 1974 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2993:19:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$5" ,
"typeString" : "enum Enum.Operation"
2018-05-10 11:12:13 +00:00
}
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_enum$_Operation_$5" ,
"typeString" : "enum Enum.Operation"
2018-05-10 11:12:13 +00:00
}
] ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1965 ,
"name" : "manager" ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 588 ,
"src" : "2932:7:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$971" ,
"typeString" : "contract ModuleManager"
2018-05-10 11:12:13 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1966 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-16 13:46:33 +00:00
"memberName" : "execTransactionFromModule" ,
2018-05-10 11:12:13 +00:00
"nodeType" : "MemberAccess" ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 798 ,
"src" : "2932:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1975 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-16 13:46:33 +00:00
"isPure" : false ,
"kind" : "functionCall" ,
2018-05-10 11:12:13 +00:00
"lValueRequested" : false ,
2018-05-16 13:46:33 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2932:81:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-10 11:12:13 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1964 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2399 ,
2400
] ,
"referencedDeclaration" : 2399 ,
"src" : "2924:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1976 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2924:90:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1977 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2924:90:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param data Encoded owner replacement transaction.\n @return Returns if transaction can be executed." ,
2018-05-16 13:46:33 +00:00
"id" : 1979 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-05-10 11:12:13 +00:00
"modifiers" : [ ] ,
"name" : "recoverAccess" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1920 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1919 ,
2018-05-04 14:04:04 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1979 ,
"src" : "2268:10:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1918 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "2268:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "2267:12:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1921 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
2018-05-10 11:12:13 +00:00
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "2299:0:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "2245:776:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
2018-05-10 11:12:13 +00:00
"superFunction" : null ,
2018-05-04 14:04:04 +00:00
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 2021 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "3293:294:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1987 ,
2018-05-04 14:04:04 +00:00
"name" : "confirmationCount" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3303:25:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1986 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3303:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1988 ,
2018-05-04 14:04:04 +00:00
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3303:25:12"
2018-05-04 14:04:04 +00:00
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 2017 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "3383:176:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2000 ,
2018-05-04 14:04:04 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1811 ,
"src" : "3401:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2002 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2001 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1981 ,
"src" : "3413:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "3401:21:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2006 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2003 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1797 ,
"src" : "3423:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2005 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2004 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1990 ,
"src" : "3431:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "3423:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "3401:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2010 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "IfStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3397:74:12" ,
2018-05-04 14:04:04 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2008 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-16 13:46:33 +00:00
"src" : "3452:19:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2007 ,
2018-05-04 14:04:04 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1987 ,
"src" : "3452:17:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2009 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3452:19:12"
2018-05-04 14:04:04 +00:00
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 2013 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2011 ,
2018-05-04 14:04:04 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1987 ,
"src" : "3489:17:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2012 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1794 ,
"src" : "3510:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "3489:30:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2016 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "IfStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3485:63:12" ,
2018-05-04 14:04:04 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 2014 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "3544:4:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"functionReturnParameters" : 1985 ,
"id" : 2015 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-16 13:46:33 +00:00
"src" : "3537:11:12"
2018-05-04 14:04:04 +00:00
}
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1996 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1993 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1990 ,
"src" : "3358:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1994 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1797 ,
"src" : "3362:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1995 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "3362:14:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "3358:18:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2018 ,
2018-05-04 14:04:04 +00:00
"initializationExpression" : {
"assignments" : [
2018-05-16 13:46:33 +00:00
1990
2018-05-04 14:04:04 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1990 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3343:9:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1989 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3343:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1992 ,
2018-05-04 14:04:04 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-16 13:46:33 +00:00
"id" : 1991 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "3355:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3343:13:12"
2018-05-04 14:04:04 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1998 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-16 13:46:33 +00:00
"src" : "3378:3:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1997 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1990 ,
"src" : "3378:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1999 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3378:3:12"
2018-05-04 14:04:04 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3338:221:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
2018-05-16 13:46:33 +00:00
"id" : 2019 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "3575:5:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
2018-05-16 13:46:33 +00:00
"functionReturnParameters" : 1985 ,
"id" : 2020 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-16 13:46:33 +00:00
"src" : "3568:12:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status." ,
2018-05-16 13:46:33 +00:00
"id" : 2022 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1982 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1981 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3220:16:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1980 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3220:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3219:18:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1985 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1984 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3283:4:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1983 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3283:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3282:6:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "3182:405:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 2033 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "3807:39:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2030 ,
2018-05-04 14:04:04 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2024 ,
"src" : "3834:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 2029 ,
2018-05-04 14:04:04 +00:00
"name" : "keccak256" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2390 ,
"src" : "3824:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_sha3_pure$__$returns$_t_bytes32_$" ,
"typeString" : "function () pure returns (bytes32)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2031 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "3824:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
2018-05-16 13:46:33 +00:00
"functionReturnParameters" : 2028 ,
"id" : 2032 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-16 13:46:33 +00:00
"src" : "3817:22:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash." ,
2018-05-16 13:46:33 +00:00
"id" : 2034 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getDataHash" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 2025 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 2024 ,
2018-05-04 14:04:04 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2034 ,
"src" : "3737:10:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 2023 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3737:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3736:12:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 2028 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 2027 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2034 ,
"src" : "3794:7:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 2026 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3794:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3793:9:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "3716:130:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"src" : "306:3542:12"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "0:3849:12"
2018-05-04 14:04:04 +00:00
} ,
"legacyAST" : {
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol" ,
2018-05-04 14:04:04 +00:00
"exportedSymbols" : {
2018-05-10 11:12:13 +00:00
"SocialRecoveryModule" : [
2018-05-16 13:46:33 +00:00
2035
2018-05-04 14:04:04 +00:00
]
} ,
2018-05-16 13:46:33 +00:00
"id" : 2036 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-05-16 13:46:33 +00:00
"id" : 1777 ,
2018-05-04 14:04:04 +00:00
"literals" : [
"solidity" ,
"0.4" ,
2018-05-10 11:12:13 +00:00
".23"
2018-05-04 14:04:04 +00:00
] ,
"nodeType" : "PragmaDirective" ,
2018-05-16 13:46:33 +00:00
"src" : "0:23:12"
2018-05-10 11:12:13 +00:00
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "../Enum.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1778 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 7 ,
"src" : "24:21:12" ,
2018-05-10 11:12:13 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "../Module.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1779 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 622 ,
"src" : "46:23:12" ,
2018-05-10 11:12:13 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"file" : "../ModuleManager.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1780 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 972 ,
"src" : "70:30:12" ,
2018-05-04 14:04:04 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
2018-05-10 11:12:13 +00:00
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"file" : "../OwnerManager.sol" ,
2018-05-16 13:46:33 +00:00
"id" : 1781 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ImportDirective" ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"sourceUnit" : 1344 ,
"src" : "101:29:12" ,
2018-05-04 14:04:04 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
2018-05-04 14:04:04 +00:00
"baseName" : {
"contractScope" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1782 ,
2018-05-10 11:12:13 +00:00
"name" : "Module" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "UserDefinedTypeName" ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 621 ,
"src" : "339:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_contract$_Module_$621" ,
2018-05-10 11:12:13 +00:00
"typeString" : "contract Module"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1783 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-05-16 13:46:33 +00:00
"src" : "339:6:12"
2018-05-04 14:04:04 +00:00
}
] ,
"contractDependencies" : [
2018-05-16 13:46:33 +00:00
580 ,
621 ,
1359
2018-05-04 14:04:04 +00:00
] ,
"contractKind" : "contract" ,
2018-05-10 11:12:13 +00:00
"documentation" : "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - <stefan@gnosis.pm>" ,
2018-05-04 14:04:04 +00:00
"fullyImplemented" : true ,
2018-05-16 13:46:33 +00:00
"id" : 2035 ,
2018-05-04 14:04:04 +00:00
"linearizedBaseContracts" : [
2018-05-16 13:46:33 +00:00
2035 ,
621 ,
580 ,
1359
2018-05-04 14:04:04 +00:00
] ,
2018-05-10 11:12:13 +00:00
"name" : "SocialRecoveryModule" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
2018-05-16 13:46:33 +00:00
"id" : 1786 ,
2018-05-04 14:04:04 +00:00
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "353:54:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1784 ,
2018-05-04 14:04:04 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "353:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "536f6369616c205265636f76657279204d6f64756c65" ,
2018-05-16 13:46:33 +00:00
"id" : 1785 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "383:24:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230" ,
"typeString" : "literal_string \"Social Recovery Module\""
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : "Social Recovery Module"
2018-05-04 14:04:04 +00:00
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-05-16 13:46:33 +00:00
"id" : 1789 ,
2018-05-04 14:04:04 +00:00
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "413:40:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1787 ,
2018-05-04 14:04:04 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "413:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "string"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
2018-05-16 13:46:33 +00:00
"id" : 1788 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "446:7:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-05-16 13:46:33 +00:00
"id" : 1792 ,
2018-05-04 14:04:04 +00:00
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "459:72:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1790 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "459:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"hexValue" : "e318b52b" ,
"id" : 1791 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "518:13:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_stringliteral_df42753442dae44b262788763363a184bfb8d0df593d5073d67844ce4b3a2d8b" ,
"typeString" : "literal_string (contains invalid UTF-8 sequence at position 2)"
2018-05-04 14:04:04 +00:00
} ,
"value" : null
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1794 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "538:22:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1793 ,
2018-05-04 14:04:04 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "538:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1797 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "566:24:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
"baseType" : {
2018-05-16 13:46:33 +00:00
"id" : 1795 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "566:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1796 ,
2018-05-04 14:04:04 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "566:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "address[]"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1801 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "661:41:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1800 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1798 ,
2018-05-04 14:04:04 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "670:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "661:25:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1799 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "681:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1805 ,
2018-05-04 14:04:04 +00:00
"name" : "isExecuted" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "770:43:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1804 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1802 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "779:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "770:25:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1803 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "790:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1811 ,
2018-05-04 14:04:04 +00:00
"name" : "isConfirmed" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "905:65:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1810 ,
2018-05-04 14:04:04 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1806 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "914:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "905:46:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1809 ,
2018-05-10 11:12:13 +00:00
"keyType" : {
2018-05-16 13:46:33 +00:00
"id" : 1807 ,
2018-05-10 11:12:13 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "934:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Mapping" ,
2018-05-16 13:46:33 +00:00
"src" : "925:25:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-05-16 13:46:33 +00:00
"id" : 1808 ,
2018-05-10 11:12:13 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "945:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"value" : null ,
2018-05-04 14:04:04 +00:00
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1821 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "999:57:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1814 ,
2018-05-10 11:12:13 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "1017:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1817 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"expression" : {
2018-05-10 11:12:13 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1815 ,
2018-05-10 11:12:13 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2396 ,
"src" : "1026:3:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1816 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "1026:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1017:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1813 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1009:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1818 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1009:29:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1819 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1009:29:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
{
2018-05-16 13:46:33 +00:00
"id" : 1820 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "PlaceholderStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1048:1:12"
2018-05-10 11:12:13 +00:00
}
]
} ,
"documentation" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1822 ,
2018-05-10 11:12:13 +00:00
"name" : "onlyFriend" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1812 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "996:2:12"
2018-05-10 11:12:13 +00:00
} ,
2018-05-16 13:46:33 +00:00
"src" : "977:79:12" ,
2018-05-10 11:12:13 +00:00
"visibility" : "internal"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1892 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "1325:422:12" ,
2018-05-10 11:12:13 +00:00
"statements" : [
2018-05-04 14:04:04 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1834 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1831 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1827 ,
"src" : "1343:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1832 ,
2018-05-04 14:04:04 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1357:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1833 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "1357:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1343:29:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1830 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1335:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1835 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1335:38:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1836 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1335:38:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1840 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1838 ,
2018-05-04 14:04:04 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1827 ,
"src" : "1391:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "32" ,
2018-05-16 13:46:33 +00:00
"id" : 1839 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1405:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_2_by_1" ,
"typeString" : "int_const 2"
} ,
"value" : "2"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1391:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1837 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1383:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1841 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1383:24:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1842 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1383:24:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-05-16 13:46:33 +00:00
"id" : 1843 ,
2018-05-10 11:12:13 +00:00
"name" : "setManager" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 620 ,
"src" : "1417:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_internal_nonpayable$__$returns$__$" ,
"typeString" : "function ()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1844 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1417:12:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1845 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1417:12:12"
2018-05-10 11:12:13 +00:00
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1882 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "1517:164:12" ,
2018-05-10 11:12:13 +00:00
"statements" : [
{
"assignments" : [
2018-05-16 13:46:33 +00:00
1858
2018-05-10 11:12:13 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1858 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1531:14:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1857 ,
2018-05-10 11:12:13 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1531:7:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1862 ,
2018-05-10 11:12:13 +00:00
"initialValue" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1859 ,
2018-05-10 11:12:13 +00:00
"name" : "_friends" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1548:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1861 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1860 ,
2018-05-10 11:12:13 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1847 ,
"src" : "1557:1:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-04 14:04:04 +00:00
}
} ,
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : true ,
2018-05-04 14:04:04 +00:00
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1548:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-10 11:12:13 +00:00
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1531:28:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1866 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1864 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1858 ,
"src" : "1581:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-16 13:46:33 +00:00
"id" : 1865 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1591:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1581:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1863 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1573:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1867 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1573:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1868 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1573:20:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1873 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-16 13:46:33 +00:00
"src" : "1615:17:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1870 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "1616:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1872 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1871 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1858 ,
"src" : "1625:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1616:16:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1869 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1607:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1874 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1607:26:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1875 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1607:26:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1880 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1876 ,
2018-05-04 14:04:04 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "1647:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1878 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1877 ,
2018-05-10 11:12:13 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1858 ,
"src" : "1656:6:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1647:16:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 1879 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1666:4:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1647:23:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1881 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1647:23:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1853 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1850 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1847 ,
"src" : "1491:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1851 ,
2018-05-04 14:04:04 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1495:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1852 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "1495:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1491:19:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1883 ,
2018-05-04 14:04:04 +00:00
"initializationExpression" : {
"assignments" : [
2018-05-16 13:46:33 +00:00
1847
2018-05-04 14:04:04 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1847 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1476:9:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1846 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1476:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1849 ,
2018-05-04 14:04:04 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-16 13:46:33 +00:00
"id" : 1848 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "1488:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1476:13:12"
2018-05-04 14:04:04 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1855 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-16 13:46:33 +00:00
"src" : "1512:3:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1854 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1847 ,
"src" : "1512:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1856 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1512:3:12"
2018-05-04 14:04:04 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1471:210:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1886 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1884 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1797 ,
"src" : "1690:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1885 ,
2018-05-04 14:04:04 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1825 ,
"src" : "1700:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1690:18:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1887 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1690:18:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1890 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1888 ,
2018-05-10 11:12:13 +00:00
"name" : "threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1794 ,
"src" : "1718:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1889 ,
2018-05-10 11:12:13 +00:00
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1827 ,
"src" : "1730:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "1718:22:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1891 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1718:22:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement." ,
2018-05-16 13:46:33 +00:00
"id" : 1893 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-05-10 11:12:13 +00:00
"modifiers" : [ ] ,
"name" : "setup" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1828 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1825 ,
2018-05-10 11:12:13 +00:00
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1268:18:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-05-16 13:46:33 +00:00
"id" : 1823 ,
2018-05-10 11:12:13 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1268:7:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1824 ,
2018-05-10 11:12:13 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1268:9:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1827 ,
2018-05-10 11:12:13 +00:00
"name" : "_threshold" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1893 ,
"src" : "1288:16:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1826 ,
2018-05-10 11:12:13 +00:00
"name" : "uint8" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1288:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "1267:38:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1829 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "1325:0:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "1253:494:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1916 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "1944:97:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1904 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-16 13:46:33 +00:00
"src" : "1962:21:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1901 ,
2018-05-04 14:04:04 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1805 ,
"src" : "1963:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1903 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1902 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1895 ,
"src" : "1974:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1963:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1900 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "1954:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1905 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "1954:30:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1906 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1954:30:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1914 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1907 ,
2018-05-04 14:04:04 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1811 ,
"src" : "1994:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1911 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1908 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1895 ,
"src" : "2006:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1994:21:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1912 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1909 ,
2018-05-04 14:04:04 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2396 ,
"src" : "2016:3:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1910 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "2016:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "1994:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 1913 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "2030:4:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"src" : "1994:40:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1915 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "1994:40:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash." ,
2018-05-16 13:46:33 +00:00
"id" : 1917 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
2018-05-10 11:12:13 +00:00
"arguments" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1898 ,
2018-05-04 14:04:04 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1897 ,
2018-05-04 14:04:04 +00:00
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1822 ,
"src" : "1929:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-05-16 13:46:33 +00:00
"src" : "1929:10:12"
2018-05-04 14:04:04 +00:00
}
] ,
"name" : "confirmTransaction" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1896 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1895 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1917 ,
"src" : "1888:16:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1894 ,
2018-05-10 11:12:13 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "1888:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-10 11:12:13 +00:00
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "1887:18:12"
2018-05-10 11:12:13 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1899 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "1944:0:12"
2018-05-10 11:12:13 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "1860:181:12" ,
2018-05-10 11:12:13 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 1978 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "2299:722:12" ,
2018-05-10 11:12:13 +00:00
"statements" : [
2018-05-04 14:04:04 +00:00
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1923 ,
2018-05-10 11:12:13 +00:00
"name" : "isFriend" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1801 ,
"src" : "2381:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1926 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1924 ,
2018-05-10 11:12:13 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2396 ,
"src" : "2390:3:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1925 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : false ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "2390:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "2381:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1922 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2373:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1927 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2373:29:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1928 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2373:29:12"
2018-05-10 11:12:13 +00:00
} ,
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1930 ,
2018-05-10 11:12:13 +00:00
"name" : "functionIdentifier" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1979 ,
"src" : "2485:25:12" ,
2018-05-10 11:12:13 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1929 ,
2018-05-10 11:12:13 +00:00
"name" : "bytes4" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "2485:6:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1931 ,
2018-05-10 11:12:13 +00:00
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2485:25:12"
2018-05-10 11:12:13 +00:00
} ,
{
"externalReferences" : [
{
"functionIdentifier" : {
2018-05-16 13:46:33 +00:00
"declaration" : 1930 ,
2018-05-10 11:12:13 +00:00
"isOffset" : false ,
"isSlot" : false ,
2018-05-16 13:46:33 +00:00
"src" : "2607:18:12" ,
2018-05-10 11:12:13 +00:00
"valueSize" : 1
}
} ,
{
"data" : {
2018-05-16 13:46:33 +00:00
"declaration" : 1919 ,
2018-05-10 11:12:13 +00:00
"isOffset" : false ,
"isSlot" : false ,
2018-05-16 13:46:33 +00:00
"src" : "2639:4:12" ,
2018-05-10 11:12:13 +00:00
"valueSize" : 1
}
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1932 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "InlineAssembly" ,
"operations" : "{\n functionIdentifier := mload(add(data, 0x20))\n}" ,
2018-05-16 13:46:33 +00:00
"src" : "2584:93:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1936 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1934 ,
2018-05-10 11:12:13 +00:00
"name" : "functionIdentifier" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1930 ,
"src" : "2678:18:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
2018-05-04 14:04:04 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1935 ,
2018-05-10 11:12:13 +00:00
"name" : "REPLACE_OWNER_FUNCTION_IDENTIFIER" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1792 ,
"src" : "2700:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes4" ,
"typeString" : "bytes4"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "2678:55:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1933 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2670:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1937 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2670:64:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1938 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2670:64:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"assignments" : [
2018-05-16 13:46:33 +00:00
1940
2018-05-10 11:12:13 +00:00
] ,
2018-05-04 14:04:04 +00:00
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1940 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1979 ,
"src" : "2744:16:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1939 ,
2018-05-10 11:12:13 +00:00
"name" : "bytes32" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "2744:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1944 ,
2018-05-10 11:12:13 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1942 ,
2018-05-10 11:12:13 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1919 ,
"src" : "2775:4:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1941 ,
2018-05-10 11:12:13 +00:00
"name" : "getDataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2034 ,
"src" : "2763:11:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$" ,
"typeString" : "function (bytes memory) view returns (bytes32)"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1943 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2763:17:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2744:36:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1949 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-05-16 13:46:33 +00:00
"src" : "2798:21:12" ,
2018-05-10 11:12:13 +00:00
"subExpression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1946 ,
2018-05-10 11:12:13 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1805 ,
"src" : "2799:10:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1948 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1947 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1940 ,
"src" : "2810:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "2799:20:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1945 ,
2018-05-04 14:04:04 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2790:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1950 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2790:30:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1951 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2790:30:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1954 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1940 ,
"src" : "2867:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1953 ,
2018-05-10 11:12:13 +00:00
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2022 ,
"src" : "2838:28:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes32_$returns$_t_bool_$" ,
"typeString" : "function (bytes32) view returns (bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1955 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2838:38:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1952 ,
2018-05-10 11:12:13 +00:00
"name" : "require" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Identifier" ,
2018-05-10 11:12:13 +00:00
"overloadedDeclarations" : [
2018-05-16 13:46:33 +00:00
2399 ,
2400
2018-05-10 11:12:13 +00:00
] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2399 ,
"src" : "2830:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1956 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2830:47:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-10 11:12:13 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1957 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2830:47:12"
2018-05-04 14:04:04 +00:00
} ,
{
2018-05-10 11:12:13 +00:00
"expression" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1962 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1958 ,
2018-05-10 11:12:13 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1805 ,
"src" : "2887:10:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1960 ,
2018-05-10 11:12:13 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1959 ,
2018-05-10 11:12:13 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1940 ,
"src" : "2898:8:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "2887:20:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 1961 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : true ,
"kind" : "bool" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "2910:4:12" ,
2018-05-10 11:12:13 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"src" : "2887:27:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1963 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2887:27:12"
2018-05-10 11:12:13 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
2018-05-04 14:04:04 +00:00
"argumentTypes" : null ,
2018-05-10 11:12:13 +00:00
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"arguments" : [
{
"argumentTypes" : null ,
"id" : 1968 ,
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 588 ,
"src" : "2974:7:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_contract$_ModuleManager_$971" ,
"typeString" : "contract ModuleManager"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_contract$_ModuleManager_$971" ,
"typeString" : "contract ModuleManager"
}
] ,
"id" : 1967 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
"src" : "2966:7:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
"id" : 1969 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2966:16:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "30" ,
"id" : 1970 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
"src" : "2984:1:12" ,
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
{
"argumentTypes" : null ,
"id" : 1971 ,
"name" : "data" ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1919 ,
"src" : "2987:4:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"id" : 1972 ,
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 6 ,
"src" : "2993:4:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$6_$" ,
"typeString" : "type(contract Enum)"
}
} ,
"id" : 1973 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 5 ,
"src" : "2993:14:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$5_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
"id" : 1974 ,
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
"src" : "2993:19:12" ,
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$5" ,
"typeString" : "enum Enum.Operation"
2018-05-10 11:12:13 +00:00
}
2018-05-04 14:04:04 +00:00
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
{
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
} ,
{
"typeIdentifier" : "t_enum$_Operation_$5" ,
"typeString" : "enum Enum.Operation"
2018-05-10 11:12:13 +00:00
}
] ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1965 ,
"name" : "manager" ,
2018-05-10 11:12:13 +00:00
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 588 ,
"src" : "2932:7:12" ,
2018-05-10 11:12:13 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$971" ,
"typeString" : "contract ModuleManager"
2018-05-10 11:12:13 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1966 ,
2018-05-10 11:12:13 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
2018-05-16 13:46:33 +00:00
"memberName" : "execTransactionFromModule" ,
2018-05-10 11:12:13 +00:00
"nodeType" : "MemberAccess" ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 798 ,
"src" : "2932:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1975 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
2018-05-10 11:12:13 +00:00
"isLValue" : false ,
2018-05-16 13:46:33 +00:00
"isPure" : false ,
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-16 13:46:33 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
"src" : "2932:81:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
}
2018-05-10 11:12:13 +00:00
] ,
"expression" : {
"argumentTypes" : [
2018-05-04 14:04:04 +00:00
{
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1964 ,
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2399 ,
2400
] ,
"referencedDeclaration" : 2399 ,
"src" : "2924:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_function_require_pure$_t_bool_$returns$__$" ,
"typeString" : "function (bool) pure"
2018-05-04 14:04:04 +00:00
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1976 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
2018-05-10 11:12:13 +00:00
"isPure" : false ,
"kind" : "functionCall" ,
2018-05-04 14:04:04 +00:00
"lValueRequested" : false ,
2018-05-10 11:12:13 +00:00
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "2924:90:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
2018-05-16 13:46:33 +00:00
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
2018-05-10 11:12:13 +00:00
}
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"id" : 1977 ,
2018-05-10 11:12:13 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "2924:90:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param data Encoded owner replacement transaction.\n @return Returns if transaction can be executed." ,
2018-05-16 13:46:33 +00:00
"id" : 1979 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
2018-05-10 11:12:13 +00:00
"modifiers" : [ ] ,
"name" : "recoverAccess" ,
2018-05-04 14:04:04 +00:00
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1920 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1919 ,
2018-05-04 14:04:04 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 1979 ,
"src" : "2268:10:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1918 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "2268:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "2267:12:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1921 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
2018-05-10 11:12:13 +00:00
"parameters" : [ ] ,
2018-05-16 13:46:33 +00:00
"src" : "2299:0:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "2245:776:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "nonpayable" ,
2018-05-10 11:12:13 +00:00
"superFunction" : null ,
2018-05-04 14:04:04 +00:00
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 2021 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "3293:294:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1987 ,
2018-05-04 14:04:04 +00:00
"name" : "confirmationCount" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3303:25:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1986 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3303:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1988 ,
2018-05-04 14:04:04 +00:00
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3303:25:12"
2018-05-04 14:04:04 +00:00
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 2017 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "3383:176:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2000 ,
2018-05-04 14:04:04 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1811 ,
"src" : "3401:11:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2002 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2001 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1981 ,
"src" : "3413:8:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "3401:21:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2006 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2003 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1797 ,
"src" : "3423:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2005 ,
2018-05-04 14:04:04 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2004 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1990 ,
"src" : "3431:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "3423:10:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-05-16 13:46:33 +00:00
"src" : "3401:33:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2010 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "IfStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3397:74:12" ,
2018-05-04 14:04:04 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2008 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-16 13:46:33 +00:00
"src" : "3452:19:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2007 ,
2018-05-04 14:04:04 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1987 ,
"src" : "3452:17:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2009 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3452:19:12"
2018-05-04 14:04:04 +00:00
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 2013 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2011 ,
2018-05-04 14:04:04 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1987 ,
"src" : "3489:17:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2012 ,
2018-05-04 14:04:04 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1794 ,
"src" : "3510:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint8" ,
"typeString" : "uint8"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "3489:30:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2016 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "IfStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3485:63:12" ,
2018-05-04 14:04:04 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-05-16 13:46:33 +00:00
"id" : 2014 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "3544:4:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-05-16 13:46:33 +00:00
"functionReturnParameters" : 1985 ,
"id" : 2015 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-16 13:46:33 +00:00
"src" : "3537:11:12"
2018-05-04 14:04:04 +00:00
}
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-05-16 13:46:33 +00:00
"id" : 1996 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1993 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1990 ,
"src" : "3358:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1994 ,
2018-05-04 14:04:04 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1797 ,
"src" : "3362:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1995 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-05-16 13:46:33 +00:00
"src" : "3362:14:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"src" : "3358:18:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2018 ,
2018-05-04 14:04:04 +00:00
"initializationExpression" : {
"assignments" : [
2018-05-16 13:46:33 +00:00
1990
2018-05-04 14:04:04 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1990 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3343:9:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1989 ,
2018-05-04 14:04:04 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3343:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 1992 ,
2018-05-04 14:04:04 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-05-16 13:46:33 +00:00
"id" : 1991 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "3355:1:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3343:13:12"
2018-05-04 14:04:04 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1998 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-05-16 13:46:33 +00:00
"src" : "3378:3:12" ,
2018-05-04 14:04:04 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 1997 ,
2018-05-04 14:04:04 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 1990 ,
"src" : "3378:1:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 1999 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ExpressionStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3378:3:12"
2018-05-04 14:04:04 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-05-16 13:46:33 +00:00
"src" : "3338:221:12"
2018-05-04 14:04:04 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
2018-05-16 13:46:33 +00:00
"id" : 2019 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-05-16 13:46:33 +00:00
"src" : "3575:5:12" ,
2018-05-04 14:04:04 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
2018-05-16 13:46:33 +00:00
"functionReturnParameters" : 1985 ,
"id" : 2020 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-16 13:46:33 +00:00
"src" : "3568:12:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status." ,
2018-05-16 13:46:33 +00:00
"id" : 2022 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1982 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1981 ,
2018-05-04 14:04:04 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3220:16:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1980 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3220:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3219:18:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 1985 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 1984 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2022 ,
"src" : "3283:4:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 1983 ,
2018-05-04 14:04:04 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3283:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3282:6:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "3182:405:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-05-16 13:46:33 +00:00
"id" : 2033 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Block" ,
2018-05-16 13:46:33 +00:00
"src" : "3807:39:12" ,
2018-05-04 14:04:04 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-05-16 13:46:33 +00:00
"id" : 2030 ,
2018-05-04 14:04:04 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2024 ,
"src" : "3834:4:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-05-16 13:46:33 +00:00
"id" : 2029 ,
2018-05-04 14:04:04 +00:00
"name" : "keccak256" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-05-16 13:46:33 +00:00
"referencedDeclaration" : 2390 ,
"src" : "3824:9:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_sha3_pure$__$returns$_t_bytes32_$" ,
"typeString" : "function () pure returns (bytes32)"
}
} ,
2018-05-16 13:46:33 +00:00
"id" : 2031 ,
2018-05-04 14:04:04 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-05-16 13:46:33 +00:00
"src" : "3824:15:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
2018-05-16 13:46:33 +00:00
"functionReturnParameters" : 2028 ,
"id" : 2032 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "Return" ,
2018-05-16 13:46:33 +00:00
"src" : "3817:22:12"
2018-05-04 14:04:04 +00:00
}
]
} ,
2018-05-10 11:12:13 +00:00
"documentation" : "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash." ,
2018-05-16 13:46:33 +00:00
"id" : 2034 ,
2018-05-04 14:04:04 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getDataHash" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-05-16 13:46:33 +00:00
"id" : 2025 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 2024 ,
2018-05-04 14:04:04 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2034 ,
"src" : "3737:10:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 2023 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3737:5:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
2018-05-10 11:12:13 +00:00
"typeString" : "bytes"
2018-05-04 14:04:04 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3736:12:12"
2018-05-04 14:04:04 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-05-16 13:46:33 +00:00
"id" : 2028 ,
2018-05-04 14:04:04 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-05-16 13:46:33 +00:00
"id" : 2027 ,
2018-05-04 14:04:04 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-05-16 13:46:33 +00:00
"scope" : 2034 ,
"src" : "3794:7:12" ,
2018-05-04 14:04:04 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-05-16 13:46:33 +00:00
"id" : 2026 ,
2018-05-04 14:04:04 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-05-16 13:46:33 +00:00
"src" : "3794:7:12" ,
2018-05-04 14:04:04 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "3793:9:12"
2018-05-04 14:04:04 +00:00
} ,
2018-05-16 13:46:33 +00:00
"scope" : 2035 ,
"src" : "3716:130:12" ,
2018-05-04 14:04:04 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-05-16 13:46:33 +00:00
"scope" : 2036 ,
"src" : "306:3542:12"
2018-05-04 14:04:04 +00:00
}
] ,
2018-05-16 13:46:33 +00:00
"src" : "0:3849:12"
2018-05-04 14:04:04 +00:00
} ,
"compiler" : {
"name" : "solc" ,
2018-05-10 11:12:13 +00:00
"version" : "0.4.23+commit.124ca40d.Emscripten.clang"
2018-05-04 14:04:04 +00:00
} ,
"networks" : {
"4" : {
"events" : { } ,
"links" : { } ,
2018-05-16 13:46:33 +00:00
"address" : "0x1d851ebb3a205deb27104b7bef2a5633fba06154" ,
"transactionHash" : "0xf2590f3fc263b11656e7dbcce8d8f02605b6856cade967e1720cc0c5dd2608d5"
2018-05-08 14:41:03 +00:00
} ,
2018-05-10 11:12:13 +00:00
"1525950336085" : {
2018-05-08 14:41:03 +00:00
"events" : { } ,
"links" : { } ,
2018-05-10 11:12:13 +00:00
"address" : "0xfe2114e016fa8d92959754f25d4f63f155ad1a6a" ,
"transactionHash" : "0xa514f0c5c6fcab99a16bba503b6ed893935cedfafe2e5c8c825dfc117e1e266d"
2018-05-14 07:48:41 +00:00
} ,
"1526283540628" : {
"events" : { } ,
"links" : { } ,
"address" : "0x12fb2fe4f6d4c08b14c694e163b9bee65697e708" ,
"transactionHash" : "0xa514f0c5c6fcab99a16bba503b6ed893935cedfafe2e5c8c825dfc117e1e266d"
2018-05-16 13:46:33 +00:00
} ,
"1526478212260" : {
"events" : { } ,
"links" : { } ,
"address" : "0x1a92687d3982d12a985c4c35447673ff1fd312d1" ,
"transactionHash" : "0x44896356866fb32a30fe5b74e2e5b2ce3383ffef7f3190f5f10a98b5fa4406de"
2018-05-22 07:22:38 +00:00
} ,
"1526973574996" : {
"events" : { } ,
"links" : { } ,
"address" : "0xadaea58298d3f8087ac9a8d9c70ed90bb47719c3" ,
"transactionHash" : "0x44896356866fb32a30fe5b74e2e5b2ce3383ffef7f3190f5f10a98b5fa4406de"
2018-05-26 07:36:34 +00:00
} ,
"1527316019334" : {
"events" : { } ,
"links" : { } ,
"address" : "0x2ee2d6323f9595963caece8280b6e6a81d4f9d49" ,
"transactionHash" : "0x44896356866fb32a30fe5b74e2e5b2ce3383ffef7f3190f5f10a98b5fa4406de"
2018-05-04 14:04:04 +00:00
}
} ,
"schemaVersion" : "2.0.0" ,
2018-05-26 07:36:34 +00:00
"updatedAt" : "2018-05-26T06:28:28.363Z"
2018-05-04 14:04:04 +00:00
}