UNPKG

moonwalkerswap-v2-periphery

Version:
1,094 lines (1,093 loc) 338 kB
{ "contractName": "BitMath", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"moonwalkerswap-libraries/contracts/libraries/BitMath.sol\":\"BitMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"moonwalkerswap-libraries/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x19f84d5268286794b44939ec0d85b3c6f59e133f826cdbd9e40112fc94919bb7\",\"urls\":[\"bzz-raw://d21c67ed58cf667d052e141df2fba76c46c159edcc45eb897c908c20c69d2727\",\"dweb:/ipfs/QmUyKz1992wgR8nYAzBuQzjBAKMxLAN3hTgzpYJxusbmVH\"]}},\"version\":1}", "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bbda0c1d621121e6dbca99f20273634d9686386bc69aa3fb739d20bda56967664736f6c63430006060033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bbda0c1d621121e6dbca99f20273634d9686386bc69aa3fb739d20bda56967664736f6c63430006060033", "immutableReferences": {}, "sourceMap": "71:2043:19:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", "deployedSourceMap": "71:2043:19:-:0;;;;;;12:1:-1;9;2:12", "source": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity >=0.5.0;\n\nlibrary BitMath {\n // returns the 0 indexed position of the most significant bit of the input x\n // s.t. x >= 2**msb and x < 2**(msb+1)\n function mostSignificantBit(uint256 x) internal pure returns (uint8 r) {\n require(x > 0, 'BitMath::mostSignificantBit: zero');\n\n if (x >= 0x100000000000000000000000000000000) {\n x >>= 128;\n r += 128;\n }\n if (x >= 0x10000000000000000) {\n x >>= 64;\n r += 64;\n }\n if (x >= 0x100000000) {\n x >>= 32;\n r += 32;\n }\n if (x >= 0x10000) {\n x >>= 16;\n r += 16;\n }\n if (x >= 0x100) {\n x >>= 8;\n r += 8;\n }\n if (x >= 0x10) {\n x >>= 4;\n r += 4;\n }\n if (x >= 0x4) {\n x >>= 2;\n r += 2;\n }\n if (x >= 0x2) r += 1;\n }\n\n // returns the 0 indexed position of the least significant bit of the input x\n // s.t. (x & 2**lsb) != 0 and (x & (2**(lsb) - 1)) == 0)\n // i.e. the bit at the index is set and the mask of all lower bits is 0\n function leastSignificantBit(uint256 x) internal pure returns (uint8 r) {\n require(x > 0, 'BitMath::leastSignificantBit: zero');\n\n r = 255;\n if (x & uint128(-1) > 0) {\n r -= 128;\n } else {\n x >>= 128;\n }\n if (x & uint64(-1) > 0) {\n r -= 64;\n } else {\n x >>= 64;\n }\n if (x & uint32(-1) > 0) {\n r -= 32;\n } else {\n x >>= 32;\n }\n if (x & uint16(-1) > 0) {\n r -= 16;\n } else {\n x >>= 16;\n }\n if (x & uint8(-1) > 0) {\n r -= 8;\n } else {\n x >>= 8;\n }\n if (x & 0xf > 0) {\n r -= 4;\n } else {\n x >>= 4;\n }\n if (x & 0x3 > 0) {\n r -= 2;\n } else {\n x >>= 2;\n }\n if (x & 0x1 > 0) r -= 1;\n }\n}\n", "sourcePath": "moonwalkerswap-libraries/contracts/libraries/BitMath.sol", "ast": { "absolutePath": "moonwalkerswap-libraries/contracts/libraries/BitMath.sol", "exportedSymbols": { "BitMath": [ 7229 ] }, "id": 7230, "nodeType": "SourceUnit", "nodes": [ { "id": 6953, "literals": [ "solidity", ">=", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "45:24:19" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", "documentation": null, "fullyImplemented": true, "id": 7229, "linearizedBaseContracts": [ 7229 ], "name": "BitMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 7066, "nodeType": "Block", "src": "288:697:19", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 6963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 6961, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "306:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 6962, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "310:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "306:5:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4269744d6174683a3a6d6f73745369676e69666963616e744269743a207a65726f", "id": 6964, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "313:35:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_03c73b0187854c5090030bbfe0f7d97709bd7eabff8b89faf5be84b9d8c785d2", "typeString": "literal_string \"BitMath::mostSignificantBit: zero\"" }, "value": "BitMath::mostSignificantBit: zero" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_03c73b0187854c5090030bbfe0f7d97709bd7eabff8b89faf5be84b9d8c785d2", "typeString": "literal_string \"BitMath::mostSignificantBit: zero\"" } ], "id": 6960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "298:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 6965, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "298:51:19", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 6966, "nodeType": "ExpressionStatement", "src": "298:51:19" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 6969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 6967, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "364:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030", "id": 6968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "369:35:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" }, "value": "0x100000000000000000000000000000000" }, "src": "364:40:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 6979, "nodeType": "IfStatement", "src": "360:102:19", "trueBody": { "id": 6978, "nodeType": "Block", "src": "406:56:19", "statements": [ { "expression": { "argumentTypes": null, "id": 6972, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 6970, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "420:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { "argumentTypes": null, "hexValue": "313238", "id": 6971, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "426:3:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "420:9:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 6973, "nodeType": "ExpressionStatement", "src": "420:9:19" }, { "expression": { "argumentTypes": null, "id": 6976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 6974, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6958, "src": "443:1:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "313238", "id": 6975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "448:3:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "443:8:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 6977, "nodeType": "ExpressionStatement", "src": "443:8:19" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 6982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 6980, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "475:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30783130303030303030303030303030303030", "id": 6981, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "480:19:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18446744073709551616_by_1", "typeString": "int_const 18446744073709551616" }, "value": "0x10000000000000000" }, "src": "475:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 6992, "nodeType": "IfStatement", "src": "471:84:19", "trueBody": { "id": 6991, "nodeType": "Block", "src": "501:54:19", "statements": [ { "expression": { "argumentTypes": null, "id": 6985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 6983, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "515:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { "argumentTypes": null, "hexValue": "3634", "id": 6984, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "521:2:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, "src": "515:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 6986, "nodeType": "ExpressionStatement", "src": "515:8:19" }, { "expression": { "argumentTypes": null, "id": 6989, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 6987, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6958, "src": "537:1:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "3634", "id": 6988, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "542:2:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, "src": "537:7:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 6990, "nodeType": "ExpressionStatement", "src": "537:7:19" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 6995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 6993, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "568:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "3078313030303030303030", "id": 6994, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "573:11:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4294967296_by_1", "typeString": "int_const 4294967296" }, "value": "0x100000000" }, "src": "568:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 7005, "nodeType": "IfStatement", "src": "564:76:19", "trueBody": { "id": 7004, "nodeType": "Block", "src": "586:54:19", "statements": [ { "expression": { "argumentTypes": null, "id": 6998, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 6996, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "600:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { "argumentTypes": null, "hexValue": "3332", "id": 6997, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "606:2:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, "src": "600:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 6999, "nodeType": "ExpressionStatement", "src": "600:8:19" }, { "expression": { "argumentTypes": null, "id": 7002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 7000, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6958, "src": "622:1:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "3332", "id": 7001, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "627:2:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, "src": "622:7:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 7003, "nodeType": "ExpressionStatement", "src": "622:7:19" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 7008, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 7006, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "653:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30783130303030", "id": 7007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "658:7:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_65536_by_1", "typeString": "int_const 65536" }, "value": "0x10000" }, "src": "653:12:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 7018, "nodeType": "IfStatement", "src": "649:72:19", "trueBody": { "id": 7017, "nodeType": "Block", "src": "667:54:19", "statements": [ { "expression": { "argumentTypes": null, "id": 7011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 7009, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "681:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { "argumentTypes": null, "hexValue": "3136", "id": 7010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "687:2:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "src": "681:8:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 7012, "nodeType": "ExpressionStatement", "src": "681:8:19" }, { "expression": { "argumentTypes": null, "id": 7015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 7013, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6958, "src": "703:1:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "3136", "id": 7014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "708:2:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "src": "703:7:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 7016, "nodeType": "ExpressionStatement", "src": "703:7:19" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 7021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 7019, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "734:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "3078313030", "id": 7020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "739:5:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "0x100" }, "src": "734:10:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 7031, "nodeType": "IfStatement", "src": "730:68:19", "trueBody": { "id": 7030, "nodeType": "Block", "src": "746:52:19", "statements": [ { "expression": { "argumentTypes": null, "id": 7024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 7022, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "760:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { "argumentTypes": null, "hexValue": "38", "id": 7023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "766:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, "src": "760:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 7025, "nodeType": "ExpressionStatement", "src": "760:7:19" }, { "expression": { "argumentTypes": null, "id": 7028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 7026, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6958, "src": "781:1:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "argumentTypes": null, "hexValue": "38", "id": 7027, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "786:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, "src": "781:6:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "id": 7029, "nodeType": "ExpressionStatement", "src": "781:6:19" } ] } }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 7034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 7032, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "811:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "argumentTypes": null, "hexValue": "30783130", "id": 7033, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "816:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "0x10" }, "src": "811:9:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 7044, "nodeType": "IfStatement", "src": "807:67:19", "trueBody": { "id": 7043, "nodeType": "Block", "src": "822:52:19", "statements": [ { "expression": { "argumentTypes": null, "id": 7037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 7035, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6955, "src": "836:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": ">>=", "rightHandSide": { "argumentTypes": null, "hexValue": "34", "id": 7036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "842:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" },