{ "attributes": { "absolutePath": "a", "exportedSymbols": { "C": [ 39 ] } }, "children": [ { "attributes": { "abstract": false, "baseContracts": [ null ], "contractDependencies": [ null ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ 39 ], "name": "C", "scope": 40 }, "children": [ { "attributes": { "constant": false, "name": "m", "overrides": null, "scope": 39, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => address payable)", "value": null, "visibility": "public" }, "children": [ { "attributes": { "type": "mapping(address => address payable)" }, "children": [ { "attributes": { "name": "address", "type": "address" }, "id": 1, "name": "ElementaryTypeName", "src": "25:7:1" }, { "attributes": { "name": "address", "stateMutability": "payable", "type": "address payable" }, "id": 2, "name": "ElementaryTypeName", "src": "36:15:1" } ], "id": 3, "name": "Mapping", "src": "17:35:1" } ], "id": 4, "name": "VariableDeclaration", "src": "17:44:1" }, { "attributes": { "documentation": null, "implemented": true, "isConstructor": false, "kind": "function", "modifiers": [ null ], "name": "f", "overrides": null, "scope": 39, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, "children": [ { "children": [ { "attributes": { "constant": false, "name": "arg", "overrides": null, "scope": 38, "stateVariable": false, "storageLocation": "default", "type": "address payable", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "stateMutability": "payable", "type": "address payable" }, "id": 5, "name": "ElementaryTypeName", "src": "78:15:1" } ], "id": 6, "name": "VariableDeclaration", "src": "78:19:1" } ], "id": 7, "name": "ParameterList", "src": "77:21:1" }, { "children": [ { "attributes": { "constant": false, "name": "r", "overrides": null, "scope": 38, "stateVariable": false, "storageLocation": "default", "type": "address payable", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "stateMutability": "payable", "type": "address payable" }, "id": 8, "name": "ElementaryTypeName", "src": "115:15:1" } ], "id": 9, "name": "VariableDeclaration", "src": "115:17:1" } ], "id": 10, "name": "ParameterList", "src": "114:19:1" }, { "children": [ { "attributes": { "assignments": [ 12 ] }, "children": [ { "attributes": { "constant": false, "name": "a", "overrides": null, "scope": 37, "stateVariable": false, "storageLocation": "default", "type": "address payable", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "stateMutability": "payable", "type": "address payable" }, "id": 11, "name": "ElementaryTypeName", "src": "144:15:1" } ], "id": 12, "name": "VariableDeclaration", "src": "144:17:1" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "type": "address payable" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 4, "type": "mapping(address => address payable)", "value": "m" }, "id": 13, "name": "Identifier", "src": "164:1:1" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 6, "type": "address payable", "value": "arg" }, "id": 14, "name": "Identifier", "src": "166:3:1" } ], "id": 15, "name": "IndexAccess", "src": "164:6:1" } ], "id": 16, "name": "VariableDeclarationStatement", "src": "144:26:1" }, { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "=", "type": "address payable" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 9, "type": "address payable", "value": "r" }, "id": 17, "name": "Identifier", "src": "180:1:1" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 6, "type": "address payable", "value": "arg" }, "id": 18, "name": "Identifier", "src": "184:3:1" } ], "id": 19, "name": "Assignment", "src": "180:7:1" } ], "id": 20, "name": "ExpressionStatement", "src": "180:7:1" }, { "attributes": { "assignments": [ 22 ] }, "children": [ { "attributes": { "constant": false, "name": "c", "overrides": null, "scope": 37, "stateVariable": false, "storageLocation": "default", "type": "address", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "stateMutability": "nonpayable", "type": "address" }, "id": 21, "name": "ElementaryTypeName", "src": "197:7:1" } ], "id": 22, "name": "VariableDeclaration", "src": "197:9:1" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "address", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_contract$_C_$39", "typeString": "contract C" } ], "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "type": "type(address)" }, "children": [ { "attributes": { "name": "address", "type": null }, "id": 23, "name": "ElementaryTypeName", "src": "209:7:1" } ], "id": 24, "name": "ElementaryTypeNameExpression", "src": "209:7:1" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 68, "type": "contract C", "value": "this" }, "id": 25, "name": "Identifier", "src": "217:4:1" } ], "id": 26, "name": "FunctionCall", "src": "209:13:1" } ], "id": 27, "name": "VariableDeclarationStatement", "src": "197:25:1" }, { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "=", "type": "address payable" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "type": "address payable" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 4, "type": "mapping(address => address payable)", "value": "m" }, "id": 28, "name": "Identifier", "src": "232:1:1" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 22, "type": "address", "value": "c" }, "id": 29, "name": "Identifier", "src": "234:1:1" } ], "id": 30, "name": "IndexAccess", "src": "232:4:1" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "address payable", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "type": "type(address)" }, "children": [ { "attributes": { "name": "address", "type": null }, "id": 31, "name": "ElementaryTypeName", "src": "239:7:1" } ], "id": 32, "name": "ElementaryTypeNameExpression", "src": "239:7:1" }, { "attributes": { "argumentTypes": null, "hexvalue": "30", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", "type": "int_const 0", "value": "0" }, "id": 33, "name": "Literal", "src": "247:1:1" } ], "id": 34, "name": "FunctionCall", "src": "239:10:1" } ], "id": 35, "name": "Assignment", "src": "232:17:1" } ], "id": 36, "name": "ExpressionStatement", "src": "232:17:1" } ], "id": 37, "name": "Block", "src": "134:122:1" } ], "id": 38, "name": "FunctionDefinition", "src": "67:189:1" } ], "id": 39, "name": "ContractDefinition", "src": "0:258:1" } ], "id": 40, "name": "SourceUnit", "src": "0:259:1" }