{ "absolutePath": "a", "exportedSymbols": { "C": [ 39 ] }, "id": 40, "nodeType": "SourceUnit", "nodes": [ { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 39, "linearizedBaseContracts": [ 39 ], "name": "C", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "97682884", "id": 4, "mutability": "mutable", "name": "m", "nodeType": "VariableDeclaration", "scope": 39, "src": "17:44:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$", "typeString": "mapping(address => address payable)" }, "typeName": { "id": 3, "keyType": { "id": 1, "name": "address", "nodeType": "ElementaryTypeName", "src": "25:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "17:35:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$", "typeString": "mapping(address => address payable)" }, "valueType": { "id": 2, "name": "address", "nodeType": "ElementaryTypeName", "src": "36:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } }, "visibility": "public" }, { "body": { "id": 37, "nodeType": "Block", "src": "134:122:1", "statements": [ { "assignments": [ 12 ], "declarations": [ { "constant": false, "id": 12, "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", "scope": 37, "src": "144:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 11, "name": "address", "nodeType": "ElementaryTypeName", "src": "144:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "visibility": "internal" } ], "id": 16, "initialValue": { "baseExpression": { "id": 13, "name": "m", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4, "src": "164:1:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$", "typeString": "mapping(address => address payable)" } }, "id": 15, "indexExpression": { "id": 14, "name": "arg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "166:3:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "164:6:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "VariableDeclarationStatement", "src": "144:26:1" }, { "expression": { "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 17, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, "src": "180:1:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 18, "name": "arg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "184:3:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "180:7:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 20, "nodeType": "ExpressionStatement", "src": "180:7:1" }, { "assignments": [ 22 ], "declarations": [ { "constant": false, "id": 22, "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", "scope": 37, "src": "197:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21, "name": "address", "nodeType": "ElementaryTypeName", "src": "197:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 27, "initialValue": { "arguments": [ { "id": 25, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "217:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_C_$39", "typeString": "contract C" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_C_$39", "typeString": "contract C" } ], "id": 24, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "209:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 23, "name": "address", "nodeType": "ElementaryTypeName", "src": "209:7:1", "typeDescriptions": {} } }, "id": 26, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "209:13:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "197:25:1" }, { "expression": { "id": 35, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 28, "name": "m", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4, "src": "232:1:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_payable_$", "typeString": "mapping(address => address payable)" } }, "id": 30, "indexExpression": { "id": 29, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22, "src": "234:1:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "232:4:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "hexValue": "30", "id": 33, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "247:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 32, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "239:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 31, "name": "address", "nodeType": "ElementaryTypeName", "src": "239:7:1", "typeDescriptions": {} } }, "id": 34, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "239:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "232:17:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 36, "nodeType": "ExpressionStatement", "src": "232:17:1" } ] }, "functionSelector": "fc68521a", "id": 38, "implemented": true, "kind": "function", "modifiers": [], "name": "f", "nodeType": "FunctionDefinition", "parameters": { "id": 7, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 6, "mutability": "mutable", "name": "arg", "nodeType": "VariableDeclaration", "scope": 38, "src": "78:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 5, "name": "address", "nodeType": "ElementaryTypeName", "src": "78:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "visibility": "internal" } ], "src": "77:21:1" }, "returnParameters": { "id": 10, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 9, "mutability": "mutable", "name": "r", "nodeType": "VariableDeclaration", "scope": 38, "src": "115:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 8, "name": "address", "nodeType": "ElementaryTypeName", "src": "115:15:1", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "visibility": "internal" } ], "src": "114:19:1" }, "scope": 39, "src": "67:189:1", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 40, "src": "0:258:1" } ], "src": "0:259:1" }