2018-05-31 13:01:02 +00:00
{
"contractName" : "SocialRecoveryModule" ,
"abi" : [
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "threshold" ,
"outputs" : [
{
"name" : "" ,
2018-06-28 17:13:59 +00:00
"type" : "uint256"
2018-05-31 13:01:02 +00:00
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "manager" ,
"outputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [
{
"name" : "" ,
"type" : "address"
}
] ,
"name" : "isFriend" ,
"outputs" : [
{
"name" : "" ,
"type" : "bool"
}
] ,
"payable" : false ,
"stateMutability" : "view" ,
"type" : "function"
} ,
{
"constant" : false ,
"inputs" : [
{
"name" : "_masterCopy" ,
"type" : "address"
}
] ,
"name" : "changeMasterCopy" ,
"outputs" : [ ] ,
"payable" : false ,
"stateMutability" : "nonpayable" ,
"type" : "function"
} ,
{
"constant" : true ,
"inputs" : [ ] ,
"name" : "NAME" ,
"outputs" : [
{
"name" : "" ,
"type" : "string"
}
] ,
"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" ,
2018-06-28 17:13:59 +00:00
"type" : "uint256"
2018-05-31 13:01:02 +00:00
}
] ,
"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" : "prevOwner" ,
"type" : "address"
} ,
{
"name" : "oldOwner" ,
"type" : "address"
} ,
{
"name" : "newOwner" ,
"type" : "address"
}
] ,
"name" : "recoverAccess" ,
"outputs" : [ ] ,
"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" : "pure" ,
"type" : "function"
}
] ,
2018-06-28 17:13:59 +00:00
"bytecode" : " 0 x 608060405234801561001057600080 f d 5 b 50611790806100206000396000 f 3006080604052600436106100 d 0 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806342 c d e 4e8146100 d 5578063481 c 6 a 75146101005780634 a b 884271461015757806368125 a 1 b 146101 c 757806377231 e a a 1461022257806379716e43146102 a 55780637 d e 7 e d e f 146102 d 65780639 c a 89 d 0 d 14610319578063 a 3 f 4 d f 7e14610362578063 a e 68 b 0 56146103 f 2578063 b 79 f f a f f 14610477578063 c e 146828146104e0578063 e 52 c b 36 a 1461054 d 578063 f f a 1 a d 7414610596575 b 600080 f d 5 b 3480156100e157600080 f d 5 b 506100 e a 610626565 b 6040518082815260200191505060405180910390 f 35 b 34801561010 c 57600080 f d 5 b 5061011561062 c 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 34801561016357600080 f d 5 b 506101 c 56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565 b 0 0 5 b 3480156101 d 357600080 f d 5 b 50610208600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061099 d 565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561022e57600080 f d 5 b 506102 a 3600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506109 b d 565 b 0 0 5 b 3480156102 b 157600080 f d 5 b 506102 d 46004803603810190808035600019169060200190929190505050610 f 6e565 b 0 0 5 b 3480156102e257600080 f d 5 b 50610317600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050611167565 b 0 0 5 b 34801561032557600080 f d 5 b 50610348600480360381019080803560001916906020019092919050505061134 a 565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561036e57600080 f d 5 b 50610377611439565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156103 b 757808201518184015260208101905061039 c 565 b 50505050905090810190601 f 1680156103e45780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 3480156103 f e 57600080 f d 5 b 50610459600480360381019080803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565 b 60405180826000191660001916815260200191505060405180910390 f 35 b 34801561048357600080 f d 5 b 506104 c 66004803603810190808035600019169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506114 d e 565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156104 e c 57600080 f d 5 b 5061050 b 6004803603810190808035906020019092919050505061150 d 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 34801561055957600080 f d 5 b 5061057 c 600480360381019080803560001916906020019092919050505061154 b 565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156105 a 257600080 f d 5 b 506105 a b 61156 b 565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156105 e b 5780820151818401526020810190506105 d 0 565 b 50505050905090810190601 f 1680156106185780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 60025481565 b 600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681565 b 600080835183111515156106 f 4576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81526004018080602001828103825260258152602001807 f 5468726573686 f 6 c 642063616e6 e 6 f 742065786365656420667269656e64732081526020017 f 636 f 756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390 f d 5 b 6002831015151561076 d 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252601 b 8152602001807 f 4174206 c 65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390 f d 5 b 6107756115 a 4565 b 600091505 b 835182101561097957838281518110151561079157 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 161415151561082 c 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
"deployedBytecode" : " 0 x 6080604052600436106100 d 0 576000357 c 0 100000000000000000000000000000000000000000000000000000000900463 f f f f f f f f 16806342 c d e 4e8146100 d 5578063481 c 6 a 75146101005780634 a b 884271461015757806368125 a 1 b 146101 c 757806377231 e a a 1461022257806379716e43146102 a 55780637 d e 7 e d e f 146102 d 65780639 c a 89 d 0 d 14610319578063 a 3 f 4 d f 7e14610362578063 a e 68 b 0 56146103 f 2578063 b 79 f f a f f 14610477578063 c e 146828146104e0578063 e 52 c b 36 a 1461054 d 578063 f f a 1 a d 7414610596575 b 600080 f d 5 b 3480156100e157600080 f d 5 b 506100 e a 610626565 b 6040518082815260200191505060405180910390 f 35 b 34801561010 c 57600080 f d 5 b 5061011561062 c 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 34801561016357600080 f d 5 b 506101 c 56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565 b 0 0 5 b 3480156101 d 357600080 f d 5 b 50610208600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16906020019092919050505061099 d 565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561022e57600080 f d 5 b 506102 a 3600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506109 b d 565 b 0 0 5 b 3480156102 b 157600080 f d 5 b 506102 d 46004803603810190808035600019169060200190929190505050610 f 6e565 b 0 0 5 b 3480156102e257600080 f d 5 b 50610317600480360381019080803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 169060200190929190505050611167565 b 0 0 5 b 34801561032557600080 f d 5 b 50610348600480360381019080803560001916906020019092919050505061134 a 565 b 604051808215151515815260200191505060405180910390 f 35 b 34801561036e57600080 f d 5 b 50610377611439565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156103 b 757808201518184015260208101905061039 c 565 b 50505050905090810190601 f 1680156103e45780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 3480156103 f e 57600080 f d 5 b 50610459600480360381019080803590602001908201803590602001908080601 f 0 160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565 b 60405180826000191660001916815260200191505060405180910390 f 35 b 34801561048357600080 f d 5 b 506104 c 66004803603810190808035600019169060200190929190803573 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1690602001909291905050506114 d e 565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156104 e c 57600080 f d 5 b 5061050 b 6004803603810190808035906020019092919050505061150 d 565 b 604051808273 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1673 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 16815260200191505060405180910390 f 35 b 34801561055957600080 f d 5 b 5061057 c 600480360381019080803560001916906020019092919050505061154 b 565 b 604051808215151515815260200191505060405180910390 f 35 b 3480156105 a 257600080 f d 5 b 506105 a b 61156 b 565 b 6040518080602001828103825283818151815260200191508051906020019080838360005 b 838110156105 e b 5780820151818401526020810190506105 d 0 565 b 50505050905090810190601 f 1680156106185780820380516001836020036101000 a 0 31916815260200191505 b 509250505060405180910390 f 35 b 60025481565 b 600160009054906101000 a 900473 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f 1681565 b 600080835183111515156106 f 4576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81526004018080602001828103825260258152602001807 f 5468726573686 f 6 c 642063616e6 e 6 f 742065786365656420667269656e64732081526020017 f 636 f 756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390 f d 5 b 6002831015151561076 d 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 815260040180806020018281038252601 b 8152602001807 f 4174206 c 65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390 f d 5 b 6107756115 a 4565 b 600091505 b 835182101561097957838281518110151561079157 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 161415151561082 c 576040517 f 0 8 c 379 a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81526004018080602001828103825260
2018-06-29 11:23:01 +00:00
"sourceMap" : "306:3660:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3660:21;;;;;;;" ,
"deployedSourceMap" : " 306 : 3660 : 21 : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 460 : 24 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 460 : 24 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 262 : 28 : 8 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 262 : 28 : 8 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1218 : 640 : 21 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 1218 : 640 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 585 : 41 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 585 : 41 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2514 : 625 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 2514 : 625 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1971 : 210 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 1971 : 210 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 626 : 248 : 5 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 626 : 248 : 5 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3300 : 405 : 21 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 3300 : 405 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 353 : 54 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 353 : 54 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3834 : 130 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 3834 : 130 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 829 : 65 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 829 : 65 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 490 : 24 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 490 : 24 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 694 : 43 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 694 : 43 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 413 : 40 ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 413 : 40 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 460 : 24 ; ; ; ; : : : o ; 262 : 28 : 8 : - ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 1218 : 640 : 21 : - ; 1515 : 9 ; 1570 : 14 ; 1324 : 8 ; : 15 ; 1310 : 10 ; : 29 ; ; 1302 : 79 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1413 : 1 ; 1399 : 10 ; : 15 ; ; 1391 : 55 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1456 : 12 ; : 10 ; : 12 : : i ; : : : - ; 1527 : 1 ; 1515 : 13 ; ; 1510 : 282 ; 1534 : 8 ; : 15 ; 1530 : 1 ; : 19 ; 1510 : 282 ; ; ; 1587 : 8 ; 1596 : 1 ; 1587 : 11 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1570 : 28 ; ; 1630 : 1 ; 1620 : 6 ; : 11 ; ; ; ; 1612 : 55 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1690 : 8 ; : 16 ; 1699 : 6 ; 1690 : 16 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1689 : 17 ; 1681 : 63 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1777 : 4 ; 1758 : 8 ; : 16 ; 1767 : 6 ; 1758 : 16 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 23 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 1551 : 3 ; ; ; ; ; ; ; 1510 : 282 ; ; ; 1811 : 8 ; 1801 : 7 ; : 18 ; ; ; ; ; ; ; ; ; ; ; ; : : : i ; : : : - ; ; 1841 : 10 ; 1829 : 9 ; : 22 ; ; ; ; 1218 : 640 ; ; ; ; : : : o ; 585 : 41 : : - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : : : o ; 2514 : 625 : : - ; 2640 : 17 ; 2762 : 16 ; 941 : 8 ; : 20 ; 950 : 10 ; 941 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 933 : 70 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2722 : 9 ; 2733 : 8 ; 2743 ; 2660 : 92 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 49 : 4 : -1 ; 39 : 7 ; 30 ; 26 : 21 ; 22 : 32 ; 13 : 7 ; 6 : 49 ; 2660 : 92 : 21 ; ; ; ; ; ; ; 38 : 4 : -1 ; 29 : 7 ; 25 : 18 ; 67 : 10 ; 61 : 17 ; 96 : 58 ; 199 : 8 ; 192 : 4 ; 186 ; 182 : 15 ; 179 : 29 ; 167 : 10 ; 160 : 49 ; 0 : 215 ; ; ; 2660 : 92 : 21 ; 2640 : 112 ; ; 2781 : 17 ; 2793 : 4 ; 2781 : 11 ; : 17 : : i ; : : : - ; 2762 : 36 ; ; 2817 : 10 ; : 20 ; 2828 : 8 ; 2817 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2816 : 21 ; 2808 : 59 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2885 : 38 ; 2914 : 8 ; 2885 : 28 ; : 38 : : i ; : : : - ; 2877 : 88 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2998 : 4 ; 2975 : 10 ; : 20 ; 2986 : 8 ; 2975 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; : 27 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3020 : 7 ; ; ; ; ; ; ; ; ; ; ; : 33 ; ; ; 3062 : 7 ; ; ; ; ; ; ; ; ; ; ; 3072 : 1 ; 3075 : 4 ; 3081 : 19 ; 3020 : 81 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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 ; 3020 : 81 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 30 : 1 ; 27 ; 20 : 12 ; 5 : 2 ; 3020 : 81 : 21 ; ; ; ; 8 : 9 : -1 ; 5 : 2 ; ; ; 45 : 16 ; 42 : 1 ; 39 ; 24 : 38 ; 77 : 16 ; 74 : 1 ; 67 : 27 ; 5 : 2 ; 3020 : 81 : 21 ; ; ; ; ; ; ; 13 : 2 : -1 ; 8 : 3 ; 5 : 11 ; 2 : 2 ; ; ; 29 : 1 ; 26 ; 19 : 12 ; 2 : 2 ; 3020 : 81 : 21 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3012 : 120 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2514 : 625 ; ; ; ; ; : : : o ; 1971 : 210 : : - ; 941 : 8 ; : 20 ; 950 : 10 ; 941 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 933 : 70 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2074 : 10 ; : 20 ; 2085 : 8 ; 2074 : 20 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2073 : 21 ; 2065 : 59 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 2170 : 4 ; 2134 : 11 ; : 21 ; 2146 : 8
2018-06-28 17:13:59 +00:00
"source" : "pragma solidity 0.4.24;\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\n uint256 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], \"Method can only be called by a friend\");\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, uint256 _threshold)\n public\n {\n require(_threshold <= _friends.length, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0, \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\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], \"Recovery already executed\");\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n /// @return Returns if transaction can be executed.\n function recoverAccess(address prevOwner, address oldOwner, address newOwner)\n public\n onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\" ) ; \ 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 pure\n returns (bytes32)\n {\n return keccak
2018-05-31 13:01:02 +00:00
"sourcePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol" ,
"ast" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol" ,
"exportedSymbols" : {
"SocialRecoveryModule" : [
2018-06-29 11:23:01 +00:00
3680
2018-05-31 13:01:02 +00:00
]
} ,
2018-06-29 11:23:01 +00:00
"id" : 3681 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-06-29 11:23:01 +00:00
"id" : 3417 ,
2018-05-31 13:01:02 +00:00
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
2018-06-29 11:23:01 +00:00
"src" : "0:23:21"
2018-05-31 13:01:02 +00:00
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "../Enum.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3418 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
2018-05-31 13:01:02 +00:00
"sourceUnit" : 31 ,
2018-06-29 11:23:01 +00:00
"src" : "24:21:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "../Module.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3419 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"sourceUnit" : 1862 ,
"src" : "46:23:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"file" : "../ModuleManager.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3420 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"sourceUnit" : 2233 ,
"src" : "70:30:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"file" : "../OwnerManager.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3421 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"sourceUnit" : 2889 ,
"src" : "101:29:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3422 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1861 ,
"src" : "339:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_Module_$1861" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3423 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-06-29 11:23:01 +00:00
"src" : "339:6:21"
2018-05-31 13:01:02 +00:00
}
] ,
"contractDependencies" : [
2018-06-20 08:09:14 +00:00
632 ,
2018-06-29 11:23:01 +00:00
1861 ,
3065
2018-05-31 13:01:02 +00:00
] ,
"contractKind" : "contract" ,
"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>" ,
"fullyImplemented" : true ,
2018-06-29 11:23:01 +00:00
"id" : 3680 ,
2018-05-31 13:01:02 +00:00
"linearizedBaseContracts" : [
2018-06-29 11:23:01 +00:00
3680 ,
1861 ,
2018-06-20 08:09:14 +00:00
632 ,
2018-06-29 11:23:01 +00:00
3065
2018-05-31 13:01:02 +00:00
] ,
"name" : "SocialRecoveryModule" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
2018-06-29 11:23:01 +00:00
"id" : 3426 ,
2018-05-31 13:01:02 +00:00
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "353:54:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3424 ,
2018-05-31 13:01:02 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "353:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "536f6369616c205265636f76657279204d6f64756c65" ,
2018-06-29 11:23:01 +00:00
"id" : 3425 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "383:24:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230" ,
"typeString" : "literal_string \"Social Recovery Module\""
} ,
"value" : "Social Recovery Module"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-06-29 11:23:01 +00:00
"id" : 3429 ,
2018-05-31 13:01:02 +00:00
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "413:40:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3427 ,
2018-05-31 13:01:02 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "413:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
2018-06-29 11:23:01 +00:00
"id" : 3428 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "446:7:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3431 ,
2018-05-31 13:01:02 +00:00
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "460:24:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3430 ,
2018-06-28 17:13:59 +00:00
"name" : "uint256" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "460:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3434 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "490:24:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-06-29 11:23:01 +00:00
"id" : 3432 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "490:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3433 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "490:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3438 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "585:41:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3437 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3435 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "594:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "585:25:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3436 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "605:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3442 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "694:43:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3441 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3439 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "703:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "694:25:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3440 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "714:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3448 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmed" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "829:65:21" ,
2018-05-31 13:01:02 +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-06-29 11:23:01 +00:00
"id" : 3447 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3443 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "838:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "829:46:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3446 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3444 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "858:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "849:25:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3445 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "869:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3459 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "923:98:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3451 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3438 ,
"src" : "941:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3454 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3452 ,
2018-05-31 13:01:02 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4036 ,
"src" : "950:3:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3453 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "950:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "941:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64" ,
2018-06-29 11:23:01 +00:00
"id" : 3455 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "963:39:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a" ,
"typeString" : "literal_string \"Method can only be called by a friend\""
} ,
"value" : "Method can only be called by a friend"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a" ,
"typeString" : "literal_string \"Method can only be called by a friend\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3450 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "933:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3456 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "933:70:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3457 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "933:70:21"
2018-05-31 13:01:02 +00:00
} ,
{
2018-06-29 11:23:01 +00:00
"id" : 3458 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "PlaceholderStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1013:1:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3460 ,
2018-05-31 13:01:02 +00:00
"name" : "onlyFriend" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3449 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "920:2:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"src" : "901:120:21" ,
2018-05-31 13:01:02 +00:00
"visibility" : "internal"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3534 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "1292:566:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3472 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3469 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3465 ,
"src" : "1310:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3470 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1324:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3471 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "1324:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1310:29:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74" ,
2018-06-29 11:23:01 +00:00
"id" : 3473 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1341:39:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257" ,
"typeString" : "literal_string \"Threshold cannot exceed friends count\""
} ,
"value" : "Threshold cannot exceed friends count"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257" ,
"typeString" : "literal_string \"Threshold cannot exceed friends count\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3468 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1302:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3474 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1302:79:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3475 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1302:79:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"id" : 3479 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3477 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3465 ,
"src" : "1399:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "32" ,
2018-06-29 11:23:01 +00:00
"id" : 3478 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1413:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_2_by_1" ,
"typeString" : "int_const 2"
} ,
"value" : "2"
} ,
2018-06-29 11:23:01 +00:00
"src" : "1399:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4174206c65617374203220667269656e6473207265717569726564" ,
2018-06-29 11:23:01 +00:00
"id" : 3480 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1416:29:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773" ,
"typeString" : "literal_string \"At least 2 friends required\""
} ,
"value" : "At least 2 friends required"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773" ,
"typeString" : "literal_string \"At least 2 friends required\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3476 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1391:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3481 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1391:55:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3482 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1391:55:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-06-29 11:23:01 +00:00
"id" : 3483 ,
2018-05-31 13:01:02 +00:00
"name" : "setManager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1860 ,
"src" : "1456:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$__$returns$__$" ,
"typeString" : "function ()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3484 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1456:12:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3485 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1456:12:21"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3524 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "1556:236:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [
2018-06-29 11:23:01 +00:00
3498
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3498 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1570:14:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3497 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1570:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3502 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3499 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1587:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3501 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3500 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3487 ,
"src" : "1596:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "1587:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1570:28:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3506 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3504 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3498 ,
"src" : "1620:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3505 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1630:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-06-29 11:23:01 +00:00
"src" : "1620:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420667269656e6420616464726573732070726f7669646564" ,
2018-06-29 11:23:01 +00:00
"id" : 3507 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1633:33:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55" ,
"typeString" : "literal_string \"Invalid friend address provided\""
} ,
"value" : "Invalid friend address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55" ,
"typeString" : "literal_string \"Invalid friend address provided\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3503 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1612:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3508 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1612:55:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3509 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1612:55:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3514 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-06-29 11:23:01 +00:00
"src" : "1689:17:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3511 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3438 ,
"src" : "1690:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3513 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3512 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3498 ,
"src" : "1699:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "1690:16:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4475706c696361746520667269656e6420616464726573732070726f7669646564" ,
2018-06-29 11:23:01 +00:00
"id" : 3515 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1708:35:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3" ,
"typeString" : "literal_string \"Duplicate friend address provided\""
} ,
"value" : "Duplicate friend address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3" ,
"typeString" : "literal_string \"Duplicate friend address provided\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3510 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1681:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3516 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1681:63:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3517 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1681:63:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3522 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3518 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3438 ,
"src" : "1758:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3520 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3519 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3498 ,
"src" : "1767:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "1758:16:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3521 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1777:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"src" : "1758:23:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3523 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1758:23:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3493 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3490 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3487 ,
"src" : "1530:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3491 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1534:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3492 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "1534:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1530:19:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3525 ,
2018-05-31 13:01:02 +00:00
"initializationExpression" : {
"assignments" : [
2018-06-29 11:23:01 +00:00
3487
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3487 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1515:9:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3486 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1515:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3489 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3488 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1527:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1515:13:21"
2018-05-31 13:01:02 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3495 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-06-29 11:23:01 +00:00
"src" : "1551:3:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3494 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3487 ,
"src" : "1551:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3496 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1551:3:21"
2018-05-31 13:01:02 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1510:282:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3528 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3526 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3434 ,
"src" : "1801:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3527 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1811:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1801:18:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3529 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1801:18:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3532 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3530 ,
2018-05-31 13:01:02 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3431 ,
"src" : "1829:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3531 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3465 ,
"src" : "1841:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1829:22:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3533 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1829:22:21"
2018-05-31 13:01:02 +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-06-29 11:23:01 +00:00
"id" : 3535 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3466 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3463 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1233:18:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-06-29 11:23:01 +00:00
"id" : 3461 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1233:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3462 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1233:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3465 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1253:18:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3464 ,
2018-06-28 17:13:59 +00:00
"name" : "uint256" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1253:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "1232:40:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3467 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "1292:0:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "1218:640:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3559 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "2055:126:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3546 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-06-29 11:23:01 +00:00
"src" : "2073:21:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3543 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3442 ,
"src" : "2074:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3545 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3544 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3537 ,
"src" : "2085:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2074:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5265636f7665727920616c7265616479206578656375746564" ,
2018-06-29 11:23:01 +00:00
"id" : 3547 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2096:27:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
} ,
"value" : "Recovery already executed"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3542 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "2065:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3548 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2065:59:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3549 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2065:59:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3557 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3550 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3448 ,
"src" : "2134:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3554 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3551 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3537 ,
"src" : "2146:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2134:21:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3555 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3552 ,
2018-05-31 13:01:02 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4036 ,
"src" : "2156:3:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3553 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "2156:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2134:33:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3556 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2170:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"src" : "2134:40:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3558 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2134:40:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash." ,
2018-06-29 11:23:01 +00:00
"id" : 3560 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3540 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3539 ,
2018-05-31 13:01:02 +00:00
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3460 ,
"src" : "2040:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-06-29 11:23:01 +00:00
"src" : "2040:10:21"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "confirmTransaction" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3538 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3537 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3560 ,
"src" : "1999:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3536 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1999:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "1998:18:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3541 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "2055:0:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "1971:210:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3623 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "2630:509:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [
2018-06-29 11:23:01 +00:00
3572
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3572 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2640:17:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3571 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2640:5:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3580 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "737761704f776e657228616464726573732c616464726573732c6164647265737329" ,
2018-06-29 11:23:01 +00:00
"id" : 3575 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2684:36:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8" ,
"typeString" : "literal_string \"swapOwner(address,address,address)\""
} ,
"value" : "swapOwner(address,address,address)"
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3576 ,
2018-05-31 13:01:02 +00:00
"name" : "prevOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3562 ,
"src" : "2722:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3577 ,
2018-05-31 13:01:02 +00:00
"name" : "oldOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3564 ,
"src" : "2733:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3578 ,
2018-05-31 13:01:02 +00:00
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3566 ,
"src" : "2743:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8" ,
"typeString" : "literal_string \"swapOwner(address,address,address)\""
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3573 ,
2018-05-31 13:01:02 +00:00
"name" : "abi" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4023 ,
"src" : "2660:3:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_abi" ,
"typeString" : "abi"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3574 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "encodeWithSignature" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "2660:23:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$" ,
"typeString" : "function (string memory) pure returns (bytes memory)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3579 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2660:92:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2640:112:21"
2018-05-31 13:01:02 +00:00
} ,
{
"assignments" : [
2018-06-29 11:23:01 +00:00
3582
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3582 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2762:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3581 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2762:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3586 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3584 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3572 ,
"src" : "2793:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3583 ,
2018-05-31 13:01:02 +00:00
"name" : "getDataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3679 ,
"src" : "2781:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$" ,
"typeString" : "function (bytes memory) pure returns (bytes32)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3585 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2781:17:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2762:36:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3591 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-06-29 11:23:01 +00:00
"src" : "2816:21:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3588 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3442 ,
"src" : "2817:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3590 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3589 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3582 ,
"src" : "2828:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2817:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5265636f7665727920616c7265616479206578656375746564" ,
2018-06-29 11:23:01 +00:00
"id" : 3592 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2839:27:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
} ,
"value" : "Recovery already executed"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3587 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "2808:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3593 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2808:59:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3594 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2808:59:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3597 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3582 ,
"src" : "2914:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3596 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3667 ,
"src" : "2885:28:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes32_$returns$_t_bool_$" ,
"typeString" : "function (bytes32) view returns (bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3598 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2885:38:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73" ,
2018-06-29 11:23:01 +00:00
"id" : 3599 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2925:39:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8" ,
"typeString" : "literal_string \"Recovery has not enough confirmations\""
} ,
"value" : "Recovery has not enough confirmations"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8" ,
"typeString" : "literal_string \"Recovery has not enough confirmations\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3595 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "2877:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3600 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2877:88:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3601 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2877:88:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3606 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3602 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3442 ,
"src" : "2975:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3604 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3603 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3582 ,
"src" : "2986:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2975:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3605 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2998:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"src" : "2975:27:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3607 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2975:27:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3612 ,
2018-05-31 13:01:02 +00:00
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1826 ,
"src" : "3062:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$2232" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract ModuleManager"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$2232" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract ModuleManager"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3611 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-06-29 11:23:01 +00:00
"src" : "3054:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3613 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3054:16:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3614 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3072:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3615 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3572 ,
"src" : "3075:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3616 ,
2018-05-31 13:01:02 +00:00
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
2018-06-29 11:23:01 +00:00
"src" : "3081:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3617 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
2018-06-29 11:23:01 +00:00
"src" : "3081:14:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3618 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "3081:19:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"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_$29" ,
"typeString" : "enum Enum.Operation"
}
] ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3609 ,
2018-05-31 13:01:02 +00:00
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1826 ,
"src" : "3020:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$2232" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract ModuleManager"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3610 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "execTransactionFromModule" ,
"nodeType" : "MemberAccess" ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 2059 ,
"src" : "3020:33:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3619 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3020:81:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742065786563757465207265636f76657279" ,
2018-06-29 11:23:01 +00:00
"id" : 3620 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3103:28:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1" ,
"typeString" : "literal_string \"Could not execute recovery\""
} ,
"value" : "Could not execute recovery"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1" ,
"typeString" : "literal_string \"Could not execute recovery\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3608 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "3012:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3621 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3012:120:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3622 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3012:120:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed." ,
2018-06-29 11:23:01 +00:00
"id" : 3624 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3569 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3568 ,
2018-05-31 13:01:02 +00:00
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3460 ,
"src" : "2615:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-06-29 11:23:01 +00:00
"src" : "2615:10:21"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "recoverAccess" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3567 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3562 ,
2018-05-31 13:01:02 +00:00
"name" : "prevOwner" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2537:17:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3561 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2537:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3564 ,
2018-05-31 13:01:02 +00:00
"name" : "oldOwner" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2556:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3563 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2556:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3566 ,
2018-05-31 13:01:02 +00:00
"name" : "newOwner" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2574:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3565 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2574:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "2536:55:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3570 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "2630:0:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "2514:625:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3666 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "3411:294:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3632 ,
2018-05-31 13:01:02 +00:00
"name" : "confirmationCount" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3421:25:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3631 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3421:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3633 ,
2018-05-31 13:01:02 +00:00
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3421:25:21"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3662 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "3501:176:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3645 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3448 ,
"src" : "3519:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3647 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3646 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3626 ,
"src" : "3531:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "3519:21:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3651 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3648 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3434 ,
"src" : "3541:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3650 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3649 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3635 ,
"src" : "3549:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "3541:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "3519:33:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3655 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "IfStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3515:74:21" ,
2018-05-31 13:01:02 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3653 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-06-29 11:23:01 +00:00
"src" : "3570:19:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3652 ,
2018-05-31 13:01:02 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3632 ,
"src" : "3570:17:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3654 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3570:19:21"
2018-05-31 13:01:02 +00:00
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3658 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3656 ,
2018-05-31 13:01:02 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3632 ,
"src" : "3607:17:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3657 ,
2018-05-31 13:01:02 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3431 ,
"src" : "3628:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "3607:30:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3661 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "IfStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3603:63:21" ,
2018-05-31 13:01:02 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3659 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3662:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"functionReturnParameters" : 3630 ,
"id" : 3660 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-06-29 11:23:01 +00:00
"src" : "3655:11:21"
2018-05-31 13:01:02 +00:00
}
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3641 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3638 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3635 ,
"src" : "3476:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3639 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3434 ,
"src" : "3480:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3640 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "3480:14:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "3476:18:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3663 ,
2018-05-31 13:01:02 +00:00
"initializationExpression" : {
"assignments" : [
2018-06-29 11:23:01 +00:00
3635
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3635 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3461:9:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3634 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3461:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3637 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3636 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3473:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3461:13:21"
2018-05-31 13:01:02 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3643 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-06-29 11:23:01 +00:00
"src" : "3496:3:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3642 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3635 ,
"src" : "3496:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3644 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3496:3:21"
2018-05-31 13:01:02 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3456:221:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
2018-06-29 11:23:01 +00:00
"id" : 3664 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3693:5:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
2018-06-29 11:23:01 +00:00
"functionReturnParameters" : 3630 ,
"id" : 3665 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-06-29 11:23:01 +00:00
"src" : "3686:12:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status." ,
2018-06-29 11:23:01 +00:00
"id" : 3667 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3627 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3626 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3338:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3625 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3338:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3337:18:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3630 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3629 ,
2018-05-31 13:01:02 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3401:4:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3628 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3401:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3400:6:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "3300:405:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3678 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "3925:39:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3675 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3669 ,
"src" : "3952:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3674 ,
2018-05-31 13:01:02 +00:00
"name" : "keccak256" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4030 ,
"src" : "3942:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_sha3_pure$__$returns$_t_bytes32_$" ,
"typeString" : "function () pure returns (bytes32)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3676 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3942:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
2018-06-29 11:23:01 +00:00
"functionReturnParameters" : 3673 ,
"id" : 3677 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-06-29 11:23:01 +00:00
"src" : "3935:22:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash." ,
2018-06-29 11:23:01 +00:00
"id" : 3679 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getDataHash" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3670 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3669 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3679 ,
"src" : "3855:10:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3668 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3855:5:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3854:12:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3673 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3672 ,
2018-05-31 13:01:02 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3679 ,
"src" : "3912:7:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3671 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3912:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3911:9:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "3834:130:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "pure" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"src" : "306:3660:21"
2018-05-31 13:01:02 +00:00
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "0:3967:21"
2018-05-31 13:01:02 +00:00
} ,
"legacyAST" : {
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol" ,
"exportedSymbols" : {
"SocialRecoveryModule" : [
2018-06-29 11:23:01 +00:00
3680
2018-05-31 13:01:02 +00:00
]
} ,
2018-06-29 11:23:01 +00:00
"id" : 3681 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "SourceUnit" ,
"nodes" : [
{
2018-06-29 11:23:01 +00:00
"id" : 3417 ,
2018-05-31 13:01:02 +00:00
"literals" : [
"solidity" ,
"0.4" ,
".24"
] ,
"nodeType" : "PragmaDirective" ,
2018-06-29 11:23:01 +00:00
"src" : "0:23:21"
2018-05-31 13:01:02 +00:00
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol" ,
"file" : "../Enum.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3418 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
2018-05-31 13:01:02 +00:00
"sourceUnit" : 31 ,
2018-06-29 11:23:01 +00:00
"src" : "24:21:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol" ,
"file" : "../Module.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3419 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"sourceUnit" : 1862 ,
"src" : "46:23:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol" ,
"file" : "../ModuleManager.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3420 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"sourceUnit" : 2233 ,
"src" : "70:30:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"absolutePath" : "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol" ,
"file" : "../OwnerManager.sol" ,
2018-06-29 11:23:01 +00:00
"id" : 3421 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ImportDirective" ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"sourceUnit" : 2889 ,
"src" : "101:29:21" ,
2018-05-31 13:01:02 +00:00
"symbolAliases" : [ ] ,
"unitAlias" : ""
} ,
{
"baseContracts" : [
{
"arguments" : null ,
"baseName" : {
"contractScope" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3422 ,
2018-05-31 13:01:02 +00:00
"name" : "Module" ,
"nodeType" : "UserDefinedTypeName" ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1861 ,
"src" : "339:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_Module_$1861" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract Module"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3423 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "InheritanceSpecifier" ,
2018-06-29 11:23:01 +00:00
"src" : "339:6:21"
2018-05-31 13:01:02 +00:00
}
] ,
"contractDependencies" : [
2018-06-20 08:09:14 +00:00
632 ,
2018-06-29 11:23:01 +00:00
1861 ,
3065
2018-05-31 13:01:02 +00:00
] ,
"contractKind" : "contract" ,
"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>" ,
"fullyImplemented" : true ,
2018-06-29 11:23:01 +00:00
"id" : 3680 ,
2018-05-31 13:01:02 +00:00
"linearizedBaseContracts" : [
2018-06-29 11:23:01 +00:00
3680 ,
1861 ,
2018-06-20 08:09:14 +00:00
632 ,
2018-06-29 11:23:01 +00:00
3065
2018-05-31 13:01:02 +00:00
] ,
"name" : "SocialRecoveryModule" ,
"nodeType" : "ContractDefinition" ,
"nodes" : [
{
"constant" : true ,
2018-06-29 11:23:01 +00:00
"id" : 3426 ,
2018-05-31 13:01:02 +00:00
"name" : "NAME" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "353:54:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3424 ,
2018-05-31 13:01:02 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "353:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "536f6369616c205265636f76657279204d6f64756c65" ,
2018-06-29 11:23:01 +00:00
"id" : 3425 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "383:24:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230" ,
"typeString" : "literal_string \"Social Recovery Module\""
} ,
"value" : "Social Recovery Module"
} ,
"visibility" : "public"
} ,
{
"constant" : true ,
2018-06-29 11:23:01 +00:00
"id" : 3429 ,
2018-05-31 13:01:02 +00:00
"name" : "VERSION" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "413:40:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_string_memory" ,
"typeString" : "string"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3427 ,
2018-05-31 13:01:02 +00:00
"name" : "string" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "413:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_string_storage_ptr" ,
"typeString" : "string"
}
} ,
"value" : {
"argumentTypes" : null ,
"hexValue" : "302e302e31" ,
2018-06-29 11:23:01 +00:00
"id" : 3428 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "446:7:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885" ,
"typeString" : "literal_string \"0.0.1\""
} ,
"value" : "0.0.1"
} ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3431 ,
2018-05-31 13:01:02 +00:00
"name" : "threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "460:24:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3430 ,
2018-06-28 17:13:59 +00:00
"name" : "uint256" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "460:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3434 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "490:24:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-06-29 11:23:01 +00:00
"id" : 3432 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "490:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3433 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "490:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3438 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "585:41:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3437 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3435 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "594:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "585:25:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3436 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "605:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3442 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "694:43:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : true ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3441 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3439 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "703:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "694:25:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3440 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "714:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3448 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmed" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "829:65:21" ,
2018-05-31 13:01:02 +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-06-29 11:23:01 +00:00
"id" : 3447 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3443 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "838:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "829:46:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3446 ,
2018-05-31 13:01:02 +00:00
"keyType" : {
2018-06-29 11:23:01 +00:00
"id" : 3444 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "858:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "Mapping" ,
2018-06-29 11:23:01 +00:00
"src" : "849:25:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
} ,
"valueType" : {
2018-06-29 11:23:01 +00:00
"id" : 3445 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "869:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
}
}
} ,
"value" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3459 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "923:98:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3451 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3438 ,
"src" : "941:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3454 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3452 ,
2018-05-31 13:01:02 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4036 ,
"src" : "950:3:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3453 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "950:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "941:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64" ,
2018-06-29 11:23:01 +00:00
"id" : 3455 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "963:39:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a" ,
"typeString" : "literal_string \"Method can only be called by a friend\""
} ,
"value" : "Method can only be called by a friend"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a" ,
"typeString" : "literal_string \"Method can only be called by a friend\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3450 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "933:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3456 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "933:70:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3457 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "933:70:21"
2018-05-31 13:01:02 +00:00
} ,
{
2018-06-29 11:23:01 +00:00
"id" : 3458 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "PlaceholderStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1013:1:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3460 ,
2018-05-31 13:01:02 +00:00
"name" : "onlyFriend" ,
"nodeType" : "ModifierDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3449 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "920:2:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"src" : "901:120:21" ,
2018-05-31 13:01:02 +00:00
"visibility" : "internal"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3534 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "1292:566:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3472 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3469 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3465 ,
"src" : "1310:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<=" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3470 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1324:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3471 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "1324:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1310:29:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74" ,
2018-06-29 11:23:01 +00:00
"id" : 3473 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1341:39:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257" ,
"typeString" : "literal_string \"Threshold cannot exceed friends count\""
} ,
"value" : "Threshold cannot exceed friends count"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257" ,
"typeString" : "literal_string \"Threshold cannot exceed friends count\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3468 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1302:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3474 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1302:79:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3475 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1302:79:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"id" : 3479 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3477 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3465 ,
"src" : "1399:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : ">=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "32" ,
2018-06-29 11:23:01 +00:00
"id" : 3478 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1413:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_2_by_1" ,
"typeString" : "int_const 2"
} ,
"value" : "2"
} ,
2018-06-29 11:23:01 +00:00
"src" : "1399:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4174206c65617374203220667269656e6473207265717569726564" ,
2018-06-29 11:23:01 +00:00
"id" : 3480 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1416:29:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773" ,
"typeString" : "literal_string \"At least 2 friends required\""
} ,
"value" : "At least 2 friends required"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773" ,
"typeString" : "literal_string \"At least 2 friends required\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3476 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1391:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3481 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1391:55:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3482 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1391:55:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [ ] ,
"expression" : {
"argumentTypes" : [ ] ,
2018-06-29 11:23:01 +00:00
"id" : 3483 ,
2018-05-31 13:01:02 +00:00
"name" : "setManager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1860 ,
"src" : "1456:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_nonpayable$__$returns$__$" ,
"typeString" : "function ()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3484 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1456:12:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3485 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1456:12:21"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3524 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "1556:236:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [
2018-06-29 11:23:01 +00:00
3498
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3498 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1570:14:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3497 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1570:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3502 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3499 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1587:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3501 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3500 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3487 ,
"src" : "1596:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "1587:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1570:28:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3506 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3504 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3498 ,
"src" : "1620:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "!=" ,
"rightExpression" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3505 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1630:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
2018-06-29 11:23:01 +00:00
"src" : "1620:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "496e76616c696420667269656e6420616464726573732070726f7669646564" ,
2018-06-29 11:23:01 +00:00
"id" : 3507 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1633:33:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55" ,
"typeString" : "literal_string \"Invalid friend address provided\""
} ,
"value" : "Invalid friend address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55" ,
"typeString" : "literal_string \"Invalid friend address provided\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3503 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1612:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3508 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1612:55:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3509 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1612:55:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3514 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-06-29 11:23:01 +00:00
"src" : "1689:17:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3511 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3438 ,
"src" : "1690:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3513 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3512 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3498 ,
"src" : "1699:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "1690:16:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "4475706c696361746520667269656e6420616464726573732070726f7669646564" ,
2018-06-29 11:23:01 +00:00
"id" : 3515 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1708:35:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3" ,
"typeString" : "literal_string \"Duplicate friend address provided\""
} ,
"value" : "Duplicate friend address provided"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3" ,
"typeString" : "literal_string \"Duplicate friend address provided\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3510 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "1681:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3516 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "1681:63:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3517 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1681:63:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3522 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3518 ,
2018-05-31 13:01:02 +00:00
"name" : "isFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3438 ,
"src" : "1758:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3520 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3519 ,
2018-05-31 13:01:02 +00:00
"name" : "friend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3498 ,
"src" : "1767:6:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "1758:16:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3521 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1777:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"src" : "1758:23:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3523 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1758:23:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3493 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3490 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3487 ,
"src" : "1530:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3491 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1534:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3492 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "1534:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1530:19:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3525 ,
2018-05-31 13:01:02 +00:00
"initializationExpression" : {
"assignments" : [
2018-06-29 11:23:01 +00:00
3487
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3487 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1515:9:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3486 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1515:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3489 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3488 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "1527:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1515:13:21"
2018-05-31 13:01:02 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3495 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-06-29 11:23:01 +00:00
"src" : "1551:3:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3494 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3487 ,
"src" : "1551:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3496 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1551:3:21"
2018-05-31 13:01:02 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1510:282:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3528 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3526 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3434 ,
"src" : "1801:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3527 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3463 ,
"src" : "1811:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[] memory"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1801:18:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3529 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1801:18:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3532 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3530 ,
2018-05-31 13:01:02 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3431 ,
"src" : "1829:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3531 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3465 ,
"src" : "1841:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "1829:22:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3533 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "1829:22:21"
2018-05-31 13:01:02 +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-06-29 11:23:01 +00:00
"id" : 3535 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [ ] ,
"name" : "setup" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3466 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3463 ,
2018-05-31 13:01:02 +00:00
"name" : "_friends" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1233:18:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_memory_ptr" ,
"typeString" : "address[]"
} ,
"typeName" : {
"baseType" : {
2018-06-29 11:23:01 +00:00
"id" : 3461 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1233:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3462 ,
2018-05-31 13:01:02 +00:00
"length" : null ,
"nodeType" : "ArrayTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1233:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage_ptr" ,
"typeString" : "address[]"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3465 ,
2018-05-31 13:01:02 +00:00
"name" : "_threshold" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3535 ,
"src" : "1253:18:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3464 ,
2018-06-28 17:13:59 +00:00
"name" : "uint256" ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1253:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "1232:40:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3467 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "1292:0:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "1218:640:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3559 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "2055:126:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3546 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-06-29 11:23:01 +00:00
"src" : "2073:21:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3543 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3442 ,
"src" : "2074:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3545 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3544 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3537 ,
"src" : "2085:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2074:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5265636f7665727920616c7265616479206578656375746564" ,
2018-06-29 11:23:01 +00:00
"id" : 3547 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2096:27:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
} ,
"value" : "Recovery already executed"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3542 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "2065:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3548 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2065:59:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3549 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2065:59:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3557 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3550 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3448 ,
"src" : "2134:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3554 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3551 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3537 ,
"src" : "2146:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2134:21:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3555 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3552 ,
2018-05-31 13:01:02 +00:00
"name" : "msg" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4036 ,
"src" : "2156:3:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_message" ,
"typeString" : "msg"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3553 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "sender" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "2156:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2134:33:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3556 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2170:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"src" : "2134:40:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3558 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2134:40:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash." ,
2018-06-29 11:23:01 +00:00
"id" : 3560 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3540 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3539 ,
2018-05-31 13:01:02 +00:00
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3460 ,
"src" : "2040:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-06-29 11:23:01 +00:00
"src" : "2040:10:21"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "confirmTransaction" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3538 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3537 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3560 ,
"src" : "1999:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3536 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "1999:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "1998:18:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3541 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "2055:0:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "1971:210:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3623 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "2630:509:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [
2018-06-29 11:23:01 +00:00
3572
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3572 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2640:17:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "memory" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3571 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2640:5:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3580 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"hexValue" : "737761704f776e657228616464726573732c616464726573732c6164647265737329" ,
2018-06-29 11:23:01 +00:00
"id" : 3575 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2684:36:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8" ,
"typeString" : "literal_string \"swapOwner(address,address,address)\""
} ,
"value" : "swapOwner(address,address,address)"
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3576 ,
2018-05-31 13:01:02 +00:00
"name" : "prevOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3562 ,
"src" : "2722:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3577 ,
2018-05-31 13:01:02 +00:00
"name" : "oldOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3564 ,
"src" : "2733:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3578 ,
2018-05-31 13:01:02 +00:00
"name" : "newOwner" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3566 ,
"src" : "2743:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8" ,
"typeString" : "literal_string \"swapOwner(address,address,address)\""
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
{
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
] ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3573 ,
2018-05-31 13:01:02 +00:00
"name" : "abi" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4023 ,
"src" : "2660:3:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_magic_abi" ,
"typeString" : "abi"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3574 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "encodeWithSignature" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "2660:23:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$" ,
"typeString" : "function (string memory) pure returns (bytes memory)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3579 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2660:92:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2640:112:21"
2018-05-31 13:01:02 +00:00
} ,
{
"assignments" : [
2018-06-29 11:23:01 +00:00
3582
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3582 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2762:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3581 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2762:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3586 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3584 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3572 ,
"src" : "2793:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3583 ,
2018-05-31 13:01:02 +00:00
"name" : "getDataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3679 ,
"src" : "2781:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$" ,
"typeString" : "function (bytes memory) pure returns (bytes32)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3585 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2781:17:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2762:36:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3591 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "!" ,
"prefix" : true ,
2018-06-29 11:23:01 +00:00
"src" : "2816:21:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3588 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3442 ,
"src" : "2817:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3590 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3589 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3582 ,
"src" : "2828:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2817:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5265636f7665727920616c7265616479206578656375746564" ,
2018-06-29 11:23:01 +00:00
"id" : 3592 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2839:27:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
} ,
"value" : "Recovery already executed"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38" ,
"typeString" : "literal_string \"Recovery already executed\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3587 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "2808:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3593 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2808:59:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3594 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2808:59:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3597 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3582 ,
"src" : "2914:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3596 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3667 ,
"src" : "2885:28:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_internal_view$_t_bytes32_$returns$_t_bool_$" ,
"typeString" : "function (bytes32) view returns (bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3598 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2885:38:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73" ,
2018-06-29 11:23:01 +00:00
"id" : 3599 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2925:39:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8" ,
"typeString" : "literal_string \"Recovery has not enough confirmations\""
} ,
"value" : "Recovery has not enough confirmations"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8" ,
"typeString" : "literal_string \"Recovery has not enough confirmations\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3595 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "2877:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3600 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "2877:88:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3601 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2877:88:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3606 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftHandSide" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3602 ,
2018-05-31 13:01:02 +00:00
"name" : "isExecuted" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3442 ,
"src" : "2975:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_bool_$" ,
"typeString" : "mapping(bytes32 => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3604 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3603 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3582 ,
"src" : "2986:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : true ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "2975:20:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"nodeType" : "Assignment" ,
"operator" : "=" ,
"rightHandSide" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3605 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "2998:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"src" : "2975:27:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3607 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "2975:27:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3612 ,
2018-05-31 13:01:02 +00:00
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1826 ,
"src" : "3062:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$2232" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract ModuleManager"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$2232" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract ModuleManager"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3611 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"nodeType" : "ElementaryTypeNameExpression" ,
2018-06-29 11:23:01 +00:00
"src" : "3054:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_address_$" ,
"typeString" : "type(address)"
} ,
"typeName" : "address"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3613 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "typeConversion" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3054:16:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3614 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3072:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3615 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3572 ,
"src" : "3075:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
} ,
{
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3616 ,
2018-05-31 13:01:02 +00:00
"name" : "Enum" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
"referencedDeclaration" : 30 ,
2018-06-29 11:23:01 +00:00
"src" : "3081:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_contract$_Enum_$30_$" ,
"typeString" : "type(contract Enum)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3617 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "Operation" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : 29 ,
2018-06-29 11:23:01 +00:00
"src" : "3081:14:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_type$_t_enum$_Operation_$29_$" ,
"typeString" : "type(enum Enum.Operation)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3618 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"lValueRequested" : false ,
"memberName" : "Call" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "3081:19:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_enum$_Operation_$29" ,
"typeString" : "enum Enum.Operation"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"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_$29" ,
"typeString" : "enum Enum.Operation"
}
] ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3609 ,
2018-05-31 13:01:02 +00:00
"name" : "manager" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 1826 ,
"src" : "3020:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-29 11:23:01 +00:00
"typeIdentifier" : "t_contract$_ModuleManager_$2232" ,
2018-05-31 13:01:02 +00:00
"typeString" : "contract ModuleManager"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3610 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "execTransactionFromModule" ,
"nodeType" : "MemberAccess" ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 2059 ,
"src" : "3020:33:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$" ,
"typeString" : "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3619 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3020:81:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
{
"argumentTypes" : null ,
"hexValue" : "436f756c64206e6f742065786563757465207265636f76657279" ,
2018-06-29 11:23:01 +00:00
"id" : 3620 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "string" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3103:28:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1" ,
"typeString" : "literal_string \"Could not execute recovery\""
} ,
"value" : "Could not execute recovery"
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
{
"typeIdentifier" : "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1" ,
"typeString" : "literal_string \"Could not execute recovery\""
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3608 ,
2018-05-31 13:01:02 +00:00
"name" : "require" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [
2018-06-29 11:23:01 +00:00
4039 ,
4040
2018-05-31 13:01:02 +00:00
] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4040 ,
"src" : "3012:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$" ,
"typeString" : "function (bool,string memory) pure"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3621 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3012:120:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_tuple$__$" ,
"typeString" : "tuple()"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3622 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3012:120:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed." ,
2018-06-29 11:23:01 +00:00
"id" : 3624 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : false ,
"modifiers" : [
{
"arguments" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3569 ,
2018-05-31 13:01:02 +00:00
"modifierName" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3568 ,
2018-05-31 13:01:02 +00:00
"name" : "onlyFriend" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3460 ,
"src" : "2615:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_modifier$__$" ,
"typeString" : "modifier ()"
}
} ,
"nodeType" : "ModifierInvocation" ,
2018-06-29 11:23:01 +00:00
"src" : "2615:10:21"
2018-05-31 13:01:02 +00:00
}
] ,
"name" : "recoverAccess" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3567 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3562 ,
2018-05-31 13:01:02 +00:00
"name" : "prevOwner" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2537:17:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3561 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2537:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3564 ,
2018-05-31 13:01:02 +00:00
"name" : "oldOwner" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2556:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3563 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2556:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
} ,
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3566 ,
2018-05-31 13:01:02 +00:00
"name" : "newOwner" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3624 ,
"src" : "2574:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3565 ,
2018-05-31 13:01:02 +00:00
"name" : "address" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "2574:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "2536:55:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3570 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [ ] ,
2018-06-29 11:23:01 +00:00
"src" : "2630:0:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "2514:625:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "nonpayable" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3666 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "3411:294:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"assignments" : [ ] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3632 ,
2018-05-31 13:01:02 +00:00
"name" : "confirmationCount" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3421:25:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3631 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3421:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3633 ,
2018-05-31 13:01:02 +00:00
"initialValue" : null ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3421:25:21"
2018-05-31 13:01:02 +00:00
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3662 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "3501:176:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"condition" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3645 ,
2018-05-31 13:01:02 +00:00
"name" : "isConfirmed" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3448 ,
"src" : "3519:11:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$" ,
"typeString" : "mapping(bytes32 => mapping(address => bool))"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3647 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3646 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3626 ,
"src" : "3531:8:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "3519:21:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_mapping$_t_address_$_t_bool_$" ,
"typeString" : "mapping(address => bool)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3651 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
"baseExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3648 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3434 ,
"src" : "3541:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3650 ,
2018-05-31 13:01:02 +00:00
"indexExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3649 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3635 ,
"src" : "3549:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "3541:10:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_address" ,
"typeString" : "address"
}
} ,
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "IndexAccess" ,
2018-06-29 11:23:01 +00:00
"src" : "3519:33:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3655 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "IfStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3515:74:21" ,
2018-05-31 13:01:02 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3653 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-06-29 11:23:01 +00:00
"src" : "3570:19:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3652 ,
2018-05-31 13:01:02 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3632 ,
"src" : "3570:17:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3654 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3570:19:21"
2018-05-31 13:01:02 +00:00
}
} ,
{
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3658 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3656 ,
2018-05-31 13:01:02 +00:00
"name" : "confirmationCount" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3632 ,
"src" : "3607:17:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "==" ,
"rightExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3657 ,
2018-05-31 13:01:02 +00:00
"name" : "threshold" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3431 ,
"src" : "3628:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
2018-06-28 17:13:59 +00:00
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "3607:30:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"falseBody" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3661 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "IfStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3603:63:21" ,
2018-05-31 13:01:02 +00:00
"trueBody" : {
"expression" : {
"argumentTypes" : null ,
"hexValue" : "74727565" ,
2018-06-29 11:23:01 +00:00
"id" : 3659 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3662:4:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "true"
} ,
2018-06-29 11:23:01 +00:00
"functionReturnParameters" : 3630 ,
"id" : 3660 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-06-29 11:23:01 +00:00
"src" : "3655:11:21"
2018-05-31 13:01:02 +00:00
}
}
]
} ,
"condition" : {
"argumentTypes" : null ,
"commonType" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
2018-06-29 11:23:01 +00:00
"id" : 3641 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"leftExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3638 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3635 ,
"src" : "3476:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"nodeType" : "BinaryOperation" ,
"operator" : "<" ,
"rightExpression" : {
"argumentTypes" : null ,
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3639 ,
2018-05-31 13:01:02 +00:00
"name" : "friends" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3434 ,
"src" : "3480:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_array$_t_address_$dyn_storage" ,
"typeString" : "address[] storage ref"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3640 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : true ,
"isPure" : false ,
"lValueRequested" : false ,
"memberName" : "length" ,
"nodeType" : "MemberAccess" ,
"referencedDeclaration" : null ,
2018-06-29 11:23:01 +00:00
"src" : "3480:14:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"src" : "3476:18:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3663 ,
2018-05-31 13:01:02 +00:00
"initializationExpression" : {
"assignments" : [
2018-06-29 11:23:01 +00:00
3635
2018-05-31 13:01:02 +00:00
] ,
"declarations" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3635 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3461:9:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3634 ,
2018-05-31 13:01:02 +00:00
"name" : "uint256" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3461:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3637 ,
2018-05-31 13:01:02 +00:00
"initialValue" : {
"argumentTypes" : null ,
"hexValue" : "30" ,
2018-06-29 11:23:01 +00:00
"id" : 3636 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "number" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3473:1:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_rational_0_by_1" ,
"typeString" : "int_const 0"
} ,
"value" : "0"
} ,
"nodeType" : "VariableDeclarationStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3461:13:21"
2018-05-31 13:01:02 +00:00
} ,
"loopExpression" : {
"expression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3643 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"lValueRequested" : false ,
"nodeType" : "UnaryOperation" ,
"operator" : "++" ,
"prefix" : false ,
2018-06-29 11:23:01 +00:00
"src" : "3496:3:21" ,
2018-05-31 13:01:02 +00:00
"subExpression" : {
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3642 ,
2018-05-31 13:01:02 +00:00
"name" : "i" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3635 ,
"src" : "3496:1:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
"typeDescriptions" : {
"typeIdentifier" : "t_uint256" ,
"typeString" : "uint256"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3644 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ExpressionStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3496:3:21"
2018-05-31 13:01:02 +00:00
} ,
"nodeType" : "ForStatement" ,
2018-06-29 11:23:01 +00:00
"src" : "3456:221:21"
2018-05-31 13:01:02 +00:00
} ,
{
"expression" : {
"argumentTypes" : null ,
"hexValue" : "66616c7365" ,
2018-06-29 11:23:01 +00:00
"id" : 3664 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : true ,
"kind" : "bool" ,
"lValueRequested" : false ,
"nodeType" : "Literal" ,
2018-06-29 11:23:01 +00:00
"src" : "3693:5:21" ,
2018-05-31 13:01:02 +00:00
"subdenomination" : null ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"value" : "false"
} ,
2018-06-29 11:23:01 +00:00
"functionReturnParameters" : 3630 ,
"id" : 3665 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-06-29 11:23:01 +00:00
"src" : "3686:12:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status." ,
2018-06-29 11:23:01 +00:00
"id" : 3667 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "isConfirmedByRequiredFriends" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3627 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3626 ,
2018-05-31 13:01:02 +00:00
"name" : "dataHash" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3338:16:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3625 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3338:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3337:18:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3630 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3629 ,
2018-05-31 13:01:02 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3667 ,
"src" : "3401:4:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3628 ,
2018-05-31 13:01:02 +00:00
"name" : "bool" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3401:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bool" ,
"typeString" : "bool"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3400:6:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "3300:405:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "view" ,
"superFunction" : null ,
"visibility" : "public"
} ,
{
"body" : {
2018-06-29 11:23:01 +00:00
"id" : 3678 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Block" ,
2018-06-29 11:23:01 +00:00
"src" : "3925:39:21" ,
2018-05-31 13:01:02 +00:00
"statements" : [
{
"expression" : {
"argumentTypes" : null ,
"arguments" : [
{
"argumentTypes" : null ,
2018-06-29 11:23:01 +00:00
"id" : 3675 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 3669 ,
"src" : "3952:4:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
}
] ,
"expression" : {
"argumentTypes" : [
{
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes memory"
}
] ,
2018-06-29 11:23:01 +00:00
"id" : 3674 ,
2018-05-31 13:01:02 +00:00
"name" : "keccak256" ,
"nodeType" : "Identifier" ,
"overloadedDeclarations" : [ ] ,
2018-06-29 11:23:01 +00:00
"referencedDeclaration" : 4030 ,
"src" : "3942:9:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_function_sha3_pure$__$returns$_t_bytes32_$" ,
"typeString" : "function () pure returns (bytes32)"
}
} ,
2018-06-29 11:23:01 +00:00
"id" : 3676 ,
2018-05-31 13:01:02 +00:00
"isConstant" : false ,
"isLValue" : false ,
"isPure" : false ,
"kind" : "functionCall" ,
"lValueRequested" : false ,
"names" : [ ] ,
"nodeType" : "FunctionCall" ,
2018-06-29 11:23:01 +00:00
"src" : "3942:15:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
2018-06-29 11:23:01 +00:00
"functionReturnParameters" : 3673 ,
"id" : 3677 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "Return" ,
2018-06-29 11:23:01 +00:00
"src" : "3935:22:21"
2018-05-31 13:01:02 +00:00
}
]
} ,
"documentation" : "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash." ,
2018-06-29 11:23:01 +00:00
"id" : 3679 ,
2018-05-31 13:01:02 +00:00
"implemented" : true ,
"isConstructor" : false ,
"isDeclaredConst" : true ,
"modifiers" : [ ] ,
"name" : "getDataHash" ,
"nodeType" : "FunctionDefinition" ,
"parameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3670 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3669 ,
2018-05-31 13:01:02 +00:00
"name" : "data" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3679 ,
"src" : "3855:10:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_memory_ptr" ,
"typeString" : "bytes"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3668 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3855:5:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes_storage_ptr" ,
"typeString" : "bytes"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3854:12:21"
2018-05-31 13:01:02 +00:00
} ,
"payable" : false ,
"returnParameters" : {
2018-06-29 11:23:01 +00:00
"id" : 3673 ,
2018-05-31 13:01:02 +00:00
"nodeType" : "ParameterList" ,
"parameters" : [
{
"constant" : false ,
2018-06-29 11:23:01 +00:00
"id" : 3672 ,
2018-05-31 13:01:02 +00:00
"name" : "" ,
"nodeType" : "VariableDeclaration" ,
2018-06-29 11:23:01 +00:00
"scope" : 3679 ,
"src" : "3912:7:21" ,
2018-05-31 13:01:02 +00:00
"stateVariable" : false ,
"storageLocation" : "default" ,
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
} ,
"typeName" : {
2018-06-29 11:23:01 +00:00
"id" : 3671 ,
2018-05-31 13:01:02 +00:00
"name" : "bytes32" ,
"nodeType" : "ElementaryTypeName" ,
2018-06-29 11:23:01 +00:00
"src" : "3912:7:21" ,
2018-05-31 13:01:02 +00:00
"typeDescriptions" : {
"typeIdentifier" : "t_bytes32" ,
"typeString" : "bytes32"
}
} ,
"value" : null ,
"visibility" : "internal"
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "3911:9:21"
2018-05-31 13:01:02 +00:00
} ,
2018-06-29 11:23:01 +00:00
"scope" : 3680 ,
"src" : "3834:130:21" ,
2018-05-31 13:01:02 +00:00
"stateMutability" : "pure" ,
"superFunction" : null ,
"visibility" : "public"
}
] ,
2018-06-29 11:23:01 +00:00
"scope" : 3681 ,
"src" : "306:3660:21"
2018-05-31 13:01:02 +00:00
}
] ,
2018-06-29 11:23:01 +00:00
"src" : "0:3967:21"
2018-05-31 13:01:02 +00:00
} ,
"compiler" : {
"name" : "solc" ,
"version" : "0.4.24+commit.e67f0147.Emscripten.clang"
} ,
"networks" : {
2018-06-29 11:23:01 +00:00
"4" : {
2018-06-26 11:48:05 +00:00
"events" : { } ,
"links" : { } ,
2018-06-29 11:23:01 +00:00
"address" : "0x9b7aa0f7a7b44616d0a9d7b955ebd5d93ed281ed" ,
"transactionHash" : "0x5c01f255739a7f684c226c579c4cae34da68bfacb0b7b4e7e39b5f7288dcace6"
} ,
"1530013596495" : {
"events" : { } ,
"links" : { } ,
"address" : "0xeaf2060e0be99ce5d5c25cf5122f09dac5ab24a1" ,
"transactionHash" : "0xbda6edd30fdaa35267fc715f4db20e738b911db0e7ab3a857c39f48e5091f722"
2018-07-02 10:12:59 +00:00
} ,
"1530525742205" : {
"events" : { } ,
"links" : { } ,
"address" : "0x49753b0c280e394d9e949ce790d8f2552c4752cc" ,
"transactionHash" : "0xa16f1a61604288a7e29ef1a2ec02c9a4e978585340acca518d37bfb75201d1f9"
2018-07-03 11:14:01 +00:00
} ,
"1530611935189" : {
"events" : { } ,
"links" : { } ,
"address" : "0x54bd49e1cff1a60da063499da80e131aa5408e7d" ,
"transactionHash" : "0xa16f1a61604288a7e29ef1a2ec02c9a4e978585340acca518d37bfb75201d1f9"
2018-05-31 13:01:02 +00:00
}
} ,
2018-06-29 11:23:01 +00:00
"schemaVersion" : "2.0.0" ,
2018-07-03 11:14:01 +00:00
"updatedAt" : "2018-07-03T09:59:18.536Z"
2018-05-31 13:01:02 +00:00
}