UNPKG

moonwalkerswap-v1-core

Version:
1,105 lines 154 kB
{ "contractName": "LowGasSafeMath", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Optimized overflow and underflow safe math operations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains methods for doing math operations that revert on overflow or underflow for minimal gas cost\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LowGasSafeMath.sol\":\"LowGasSafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LowGasSafeMath.sol\":{\"keccak256\":\"0xf2583083971cf8a4274e14515aabbf9f4855193e34fe2addb0ca7b1589519b0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbf0ada2bba8827d459101a2359e4682be749b9ddd0a3c44f26119c9a0898e82\",\"dweb:/ipfs/QmPmKotXLza9j7sjNaXSYY9XbyZhkkQ3nMeWE9tiHKeouC\"]}},\"version\":1}", "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa40ba1a809ad93f308b5988b993efd36798e4df3d3108f458b5e54c8fb08a8c64736f6c63430007060033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa40ba1a809ad93f308b5988b993efd36798e4df3d3108f458b5e54c8fb08a8c64736f6c63430007060033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "236:1446:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "236:1446:22:-:0;;;;;;;;", "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.7.0;\n\n/// @title Optimized overflow and underflow safe math operations\n/// @notice Contains methods for doing math operations that revert on overflow or underflow for minimal gas cost\nlibrary LowGasSafeMath {\n /// @notice Returns x + y, reverts if sum overflows uint256\n /// @param x The augend\n /// @param y The addend\n /// @return z The sum of x and y\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x);\n }\n\n /// @notice Returns x - y, reverts if underflows\n /// @param x The minuend\n /// @param y The subtrahend\n /// @return z The difference of x and y\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x);\n }\n\n /// @notice Returns x * y, reverts if overflows\n /// @param x The multiplicand\n /// @param y The multiplier\n /// @return z The product of x and y\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(x == 0 || (z = x * y) / x == y);\n }\n\n /// @notice Returns x + y, reverts if overflows or underflows\n /// @param x The augend\n /// @param y The addend\n /// @return z The sum of x and y\n function add(int256 x, int256 y) internal pure returns (int256 z) {\n require((z = x + y) >= x == (y >= 0));\n }\n\n /// @notice Returns x - y, reverts if overflows or underflows\n /// @param x The minuend\n /// @param y The subtrahend\n /// @return z The difference of x and y\n function sub(int256 x, int256 y) internal pure returns (int256 z) {\n require((z = x - y) <= x == (y >= 0));\n }\n}\n", "sourcePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LowGasSafeMath.sol", "ast": { "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/LowGasSafeMath.sol", "exportedSymbols": { "LowGasSafeMath": [ 4172 ] }, "id": 4173, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4044, "literals": [ "solidity", ">=", "0.7", ".0" ], "nodeType": "PragmaDirective", "src": "32:24:22" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": { "id": 4045, "nodeType": "StructuredDocumentation", "src": "58:178:22", "text": "@title Optimized overflow and underflow safe math operations\n @notice Contains methods for doing math operations that revert on overflow or underflow for minimal gas cost" }, "fullyImplemented": true, "id": 4172, "linearizedBaseContracts": [ 4172 ], "name": "LowGasSafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 4066, "nodeType": "Block", "src": "491:42:22", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [ { "id": 4060, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 4056, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4053, "src": "510:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4057, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4048, "src": "514:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 4058, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4050, "src": "518:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "514:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "510:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 4061, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "509:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "id": 4062, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4048, "src": "524:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "509:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 4055, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "501:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 4064, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "501:25:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4065, "nodeType": "ExpressionStatement", "src": "501:25:22" } ] }, "documentation": { "id": 4046, "nodeType": "StructuredDocumentation", "src": "265:152:22", "text": "@notice Returns x + y, reverts if sum overflows uint256\n @param x The augend\n @param y The addend\n @return z The sum of x and y" }, "id": 4067, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { "id": 4051, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4048, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "scope": 4067, "src": "435:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4047, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 4050, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "scope": 4067, "src": "446:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4049, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "446:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "434:22:22" }, "returnParameters": { "id": 4054, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4053, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "scope": 4067, "src": "480:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4052, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "480:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "479:11:22" }, "scope": 4172, "src": "422:111:22", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { "id": 4088, "nodeType": "Block", "src": "766:42:22", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [ { "id": 4082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 4078, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4075, "src": "785:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4079, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4070, "src": "789:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 4080, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4072, "src": "793:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "789:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "785:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 4083, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "784:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "id": 4084, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4070, "src": "799:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "784:16:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 4077, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "776:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 4086, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "776:25:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4087, "nodeType": "ExpressionStatement", "src": "776:25:22" } ] }, "documentation": { "id": 4068, "nodeType": "StructuredDocumentation", "src": "539:153:22", "text": "@notice Returns x - y, reverts if underflows\n @param x The minuend\n @param y The subtrahend\n @return z The difference of x and y" }, "id": 4089, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { "id": 4073, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4070, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "scope": 4089, "src": "710:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4069, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "710:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 4072, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "scope": 4089, "src": "721:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4071, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "721:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "709:22:22" }, "returnParameters": { "id": 4076, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4075, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "scope": 4089, "src": "755:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "755:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "754:11:22" }, "scope": 4172, "src": "697:111:22", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { "id": 4116, "nodeType": "Block", "src": "1042:56:22", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 4113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4100, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4092, "src": "1060:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 4101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1065:1:22", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1060:6:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4112, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [ { "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 4103, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4097, "src": "1071:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 4106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4104, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4092, "src": "1075:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 4105, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4094, "src": "1079:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1075:5:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1071:9:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 4108, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1070:11:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "id": 4109, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4092, "src": "1084:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1070:15:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 4111, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4094, "src": "1089:1:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1070:20:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1060:30:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 4099, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "1052:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 4114, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1052:39:22", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 4115, "nodeType": "ExpressionStatement", "src": "1052:39:22" } ] }, "documentation": { "id": 4090, "nodeType": "StructuredDocumentation", "src": "814:154:22", "text": "@notice Returns x * y, reverts if overflows\n @param x The multiplicand\n @param y The multiplier\n @return z The product of x and y" }, "id": 4117, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { "id": 4095, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4092, "mutability": "mutable", "name": "x", "nodeType": "VariableDeclaration", "scope": 4117, "src": "986:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4091, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "986:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 4094, "mutability": "mutable", "name": "y", "nodeType": "VariableDeclaration", "scope": 4117, "src": "997:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4093, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "997:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "985:22:22" }, "returnParameters": { "id": 4098, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4097, "mutability": "mutable", "name": "z", "nodeType": "VariableDeclaration", "scope": 4117, "src": "1031:9:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4096, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:22", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1030:11:22" }, "scope": 4172, "src": "973:125:22", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { "id": 4143, "nodeType": "Block", "src": "1329:54:22", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 4140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 4135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [ { "id": 4132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 4128, "name": "z", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4125, "src": "1348:1:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 4131, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 4129, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4120, "src": "1352:1:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 4130, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4122, "src": "1356:1:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1352:5:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1348:9:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "id": 4133, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "1347:11:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "id": 4134, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4120, "src": "1362:1:22", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1347:16:22", "typeDescripti