diff --git a/README.md b/README.md index fc722941..c714165e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ [![CI](https://github.com/AngleProtocol/merkl-contracts/actions/workflows/ci.yml/badge.svg)](https://github.com/AngleProtocol/merkl-contracts/actions) -[![Coverage](https://codecov.io/gh/AngleProtocol/merkl-contracts/branch/main/graph/badge.svg)](https://codecov.io/gh/AngleProtocol/merkl-contracts) This repository contains the core smart contracts for the Merkl solution. diff --git a/bun.lock b/bun.lock index 67f8446b..6c4c8c63 100644 --- a/bun.lock +++ b/bun.lock @@ -1,11 +1,10 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "merkl-contracts", "devDependencies": { - "@angleprotocol/sdk": "^2.41.43", - "@merkl/registry": "latest", "@openzeppelin/contracts": "^4.9.0", "@openzeppelin/contracts-upgradeable": "4.9.0", "forge-std": "github:foundry-rs/forge-std#v1.9.4", @@ -14,24 +13,20 @@ "solhint": "^3.5.1", "solhint-plugin-prettier": "^0.0.5", "solidity-coverage": "^0.8.2", - "utils": "github:AngleProtocol/utils", }, }, }, + "overrides": { + "minimatch": "9.0.5", + }, "packages": { - "@adraffy/ens-normalize": ["@adraffy/ens-normalize@1.11.0", "", {}, "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg=="], - - "@angleprotocol/sdk": ["@angleprotocol/sdk@2.41.43", "https://npm.pkg.github.com/download/@angleprotocol/sdk/2.41.43/84459336530fb89cbc0b18f6488745d8aad74032", { "dependencies": { "@apollo/client": "^3.12.2", "@typechain/ethers-v5": "^10.0.0", "@types/lodash": "^4.17.13", "axios": "^1.7.7", "bun-types": "^1.1.27", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "cross-fetch": "^4.0.0", "ethers": "^5.6.4", "graphql": "^16.9.0", "graphql-request": "^3.6.1", "jsbi": "^4.3.0", "keccak256": "^1.0.6", "lodash": "^4.17.21", "merkletreejs": "^0.3.10", "p-limit": "^6.2.0", "pino": "^9.6.0", "reflect-metadata": "^0.2.2", "tiny-invariant": "^1.1.0", "typechain": "^8.3.2", "viem": "2.28.0" } }, "sha512-2LNSQW3FRMwusTKgVUxIWBhpvFO9wMq4hJM3krwa8SXWnn4msdSUFFoJanwI5AZTVrwCngs9gYTpaAIvUMS5WA=="], - - "@apollo/client": ["@apollo/client@3.13.9", "", { "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", "@wry/equality": "^0.5.6", "@wry/trie": "^0.5.0", "graphql-tag": "^2.12.6", "hoist-non-react-statics": "^3.3.2", "optimism": "^0.18.0", "prop-types": "^15.7.2", "rehackt": "^0.1.0", "symbol-observable": "^4.0.0", "ts-invariant": "^0.10.3", "tslib": "^2.3.0", "zen-observable-ts": "^1.2.5" }, "peerDependencies": { "graphql": "^15.0.0 || ^16.0.0", "graphql-ws": "^5.5.5 || ^6.0.3", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc", "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" }, "optionalPeers": ["graphql-ws", "react", "react-dom", "subscriptions-transport-ws"] }, "sha512-RStSzQfL1XwL6/NWd7W8avhGQYTgPCtJ+qHkkTTSj9Upp3VVm6Oppv81YWdXG1FgEpDPW4hvCrTUELdcC4inCQ=="], - "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], - "@ethereumjs/rlp": ["@ethereumjs/rlp@5.0.2", "", { "bin": { "rlp": "bin/rlp.cjs" } }, "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA=="], + "@ethereumjs/rlp": ["@ethereumjs/rlp@4.0.1", "", { "bin": { "rlp": "bin/rlp" } }, "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw=="], - "@ethereumjs/util": ["@ethereumjs/util@9.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^5.0.2", "ethereum-cryptography": "^2.2.1" } }, "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog=="], + "@ethereumjs/util": ["@ethereumjs/util@8.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", "micro-ftch": "^0.3.1" } }, "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA=="], "@ethersproject/abi": ["@ethersproject/abi@5.8.0", "", { "dependencies": { "@ethersproject/address": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/constants": "^5.8.0", "@ethersproject/hash": "^5.8.0", "@ethersproject/keccak256": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/strings": "^5.8.0" } }, "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q=="], @@ -43,65 +38,37 @@ "@ethersproject/base64": ["@ethersproject/base64@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0" } }, "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ=="], - "@ethersproject/basex": ["@ethersproject/basex@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/properties": "^5.8.0" } }, "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q=="], - "@ethersproject/bignumber": ["@ethersproject/bignumber@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0", "bn.js": "^5.2.1" } }, "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA=="], "@ethersproject/bytes": ["@ethersproject/bytes@5.8.0", "", { "dependencies": { "@ethersproject/logger": "^5.8.0" } }, "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A=="], "@ethersproject/constants": ["@ethersproject/constants@5.8.0", "", { "dependencies": { "@ethersproject/bignumber": "^5.8.0" } }, "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg=="], - "@ethersproject/contracts": ["@ethersproject/contracts@5.8.0", "", { "dependencies": { "@ethersproject/abi": "^5.8.0", "@ethersproject/abstract-provider": "^5.8.0", "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/address": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/constants": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/transactions": "^5.8.0" } }, "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ=="], - "@ethersproject/hash": ["@ethersproject/hash@5.8.0", "", { "dependencies": { "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/address": "^5.8.0", "@ethersproject/base64": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/keccak256": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/strings": "^5.8.0" } }, "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA=="], - "@ethersproject/hdnode": ["@ethersproject/hdnode@5.8.0", "", { "dependencies": { "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/basex": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/pbkdf2": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/sha2": "^5.8.0", "@ethersproject/signing-key": "^5.8.0", "@ethersproject/strings": "^5.8.0", "@ethersproject/transactions": "^5.8.0", "@ethersproject/wordlists": "^5.8.0" } }, "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA=="], - - "@ethersproject/json-wallets": ["@ethersproject/json-wallets@5.8.0", "", { "dependencies": { "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/address": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/hdnode": "^5.8.0", "@ethersproject/keccak256": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/pbkdf2": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/random": "^5.8.0", "@ethersproject/strings": "^5.8.0", "@ethersproject/transactions": "^5.8.0", "aes-js": "3.0.0", "scrypt-js": "3.0.1" } }, "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w=="], - "@ethersproject/keccak256": ["@ethersproject/keccak256@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "js-sha3": "0.8.0" } }, "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng=="], "@ethersproject/logger": ["@ethersproject/logger@5.8.0", "", {}, "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA=="], "@ethersproject/networks": ["@ethersproject/networks@5.8.0", "", { "dependencies": { "@ethersproject/logger": "^5.8.0" } }, "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg=="], - "@ethersproject/pbkdf2": ["@ethersproject/pbkdf2@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/sha2": "^5.8.0" } }, "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg=="], - "@ethersproject/properties": ["@ethersproject/properties@5.8.0", "", { "dependencies": { "@ethersproject/logger": "^5.8.0" } }, "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw=="], - "@ethersproject/providers": ["@ethersproject/providers@5.8.0", "", { "dependencies": { "@ethersproject/abstract-provider": "^5.8.0", "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/address": "^5.8.0", "@ethersproject/base64": "^5.8.0", "@ethersproject/basex": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/constants": "^5.8.0", "@ethersproject/hash": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/networks": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/random": "^5.8.0", "@ethersproject/rlp": "^5.8.0", "@ethersproject/sha2": "^5.8.0", "@ethersproject/strings": "^5.8.0", "@ethersproject/transactions": "^5.8.0", "@ethersproject/web": "^5.8.0", "bech32": "1.1.4", "ws": "8.18.0" } }, "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw=="], - - "@ethersproject/random": ["@ethersproject/random@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0" } }, "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A=="], - "@ethersproject/rlp": ["@ethersproject/rlp@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0" } }, "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q=="], - "@ethersproject/sha2": ["@ethersproject/sha2@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0", "hash.js": "1.1.7" } }, "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A=="], - "@ethersproject/signing-key": ["@ethersproject/signing-key@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "bn.js": "^5.2.1", "elliptic": "6.6.1", "hash.js": "1.1.7" } }, "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w=="], - "@ethersproject/solidity": ["@ethersproject/solidity@5.8.0", "", { "dependencies": { "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/keccak256": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/sha2": "^5.8.0", "@ethersproject/strings": "^5.8.0" } }, "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA=="], - "@ethersproject/strings": ["@ethersproject/strings@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/constants": "^5.8.0", "@ethersproject/logger": "^5.8.0" } }, "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg=="], "@ethersproject/transactions": ["@ethersproject/transactions@5.8.0", "", { "dependencies": { "@ethersproject/address": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/constants": "^5.8.0", "@ethersproject/keccak256": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/rlp": "^5.8.0", "@ethersproject/signing-key": "^5.8.0" } }, "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg=="], - "@ethersproject/units": ["@ethersproject/units@5.8.0", "", { "dependencies": { "@ethersproject/bignumber": "^5.8.0", "@ethersproject/constants": "^5.8.0", "@ethersproject/logger": "^5.8.0" } }, "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ=="], - - "@ethersproject/wallet": ["@ethersproject/wallet@5.8.0", "", { "dependencies": { "@ethersproject/abstract-provider": "^5.8.0", "@ethersproject/abstract-signer": "^5.8.0", "@ethersproject/address": "^5.8.0", "@ethersproject/bignumber": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/hash": "^5.8.0", "@ethersproject/hdnode": "^5.8.0", "@ethersproject/json-wallets": "^5.8.0", "@ethersproject/keccak256": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/random": "^5.8.0", "@ethersproject/signing-key": "^5.8.0", "@ethersproject/transactions": "^5.8.0", "@ethersproject/wordlists": "^5.8.0" } }, "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA=="], - "@ethersproject/web": ["@ethersproject/web@5.8.0", "", { "dependencies": { "@ethersproject/base64": "^5.8.0", "@ethersproject/bytes": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/strings": "^5.8.0" } }, "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw=="], - "@ethersproject/wordlists": ["@ethersproject/wordlists@5.8.0", "", { "dependencies": { "@ethersproject/bytes": "^5.8.0", "@ethersproject/hash": "^5.8.0", "@ethersproject/logger": "^5.8.0", "@ethersproject/properties": "^5.8.0", "@ethersproject/strings": "^5.8.0" } }, "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg=="], - "@fastify/busboy": ["@fastify/busboy@2.1.1", "", {}, "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA=="], - "@graphql-typed-document-node/core": ["@graphql-typed-document-node/core@3.2.0", "", { "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="], - - "@merkl/registry": ["@merkl/registry@0.6.0", "", {}, "sha512-l6pTuSU0uK1NUBp66XyouSw8FmPplQtWOJYtehIxNptkX6omdXfI0KpXdmoKSoxEX52IjABe8zpaHR90JjsrEQ=="], - - "@noble/curves": ["@noble/curves@1.8.2", "", { "dependencies": { "@noble/hashes": "1.7.2" } }, "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g=="], + "@noble/curves": ["@noble/curves@1.4.2", "", { "dependencies": { "@noble/hashes": "1.4.0" } }, "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw=="], - "@noble/hashes": ["@noble/hashes@1.7.2", "", {}, "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ=="], + "@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], "@noble/secp256k1": ["@noble/secp256k1@1.7.1", "", {}, "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw=="], @@ -147,11 +114,11 @@ "@openzeppelin/contracts-upgradeable": ["@openzeppelin/contracts-upgradeable@4.9.0", "", {}, "sha512-+6i2j6vr2fdudTqkBvG+UOosankukxYzg3WN1nqU7ijjQ5A4osWaD3ip6CEz6YvDoSdZgcFVZoiGr7zRlUUoZw=="], - "@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + "@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - "@scure/bip32": ["@scure/bip32@1.6.2", "", { "dependencies": { "@noble/curves": "~1.8.1", "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.2" } }, "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw=="], + "@scure/bip32": ["@scure/bip32@1.4.0", "", { "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg=="], - "@scure/bip39": ["@scure/bip39@1.5.4", "", { "dependencies": { "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.4" } }, "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA=="], + "@scure/bip39": ["@scure/bip39@1.3.0", "", { "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ=="], "@sentry/core": ["@sentry/core@5.30.0", "", { "dependencies": { "@sentry/hub": "5.30.0", "@sentry/minimal": "5.30.0", "@sentry/types": "5.30.0", "@sentry/utils": "5.30.0", "tslib": "^1.9.3" } }, "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg=="], @@ -169,38 +136,16 @@ "@solidity-parser/parser": ["@solidity-parser/parser@0.20.2", "", {}, "sha512-rbu0bzwNvMcwAjH86hiEAcOeRI2EeK8zCkHDrFykh/Al8mvJeFmjy3UrE7GYQjNwOgbGUUtCn5/k8CB8zIu7QA=="], - "@typechain/ethers-v5": ["@typechain/ethers-v5@10.2.1", "", { "dependencies": { "lodash": "^4.17.15", "ts-essentials": "^7.0.1" }, "peerDependencies": { "@ethersproject/abi": "^5.0.0", "@ethersproject/providers": "^5.0.0", "ethers": "^5.1.3", "typechain": "^8.1.1", "typescript": ">=4.3.0" } }, "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A=="], - "@types/glob": ["@types/glob@7.2.0", "", { "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA=="], - "@types/lodash": ["@types/lodash@4.17.20", "", {}, "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA=="], - "@types/minimatch": ["@types/minimatch@6.0.0", "", { "dependencies": { "minimatch": "*" } }, "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA=="], "@types/node": ["@types/node@24.3.0", "", { "dependencies": { "undici-types": "~7.10.0" } }, "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow=="], - "@types/prettier": ["@types/prettier@2.7.3", "", {}, "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="], - - "@types/react": ["@types/react@19.1.10", "", { "dependencies": { "csstype": "^3.0.2" } }, "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg=="], - - "@types/validator": ["@types/validator@13.15.2", "", {}, "sha512-y7pa/oEJJ4iGYBxOpfAKn5b9+xuihvzDVnC/OSvlVnGxVg0pOqmjiMafiJ1KVNQEaPZf9HsEp5icEwGg8uIe5Q=="], - - "@wry/caches": ["@wry/caches@1.0.1", "", { "dependencies": { "tslib": "^2.3.0" } }, "sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA=="], - - "@wry/context": ["@wry/context@0.7.4", "", { "dependencies": { "tslib": "^2.3.0" } }, "sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ=="], - - "@wry/equality": ["@wry/equality@0.5.7", "", { "dependencies": { "tslib": "^2.3.0" } }, "sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw=="], - - "@wry/trie": ["@wry/trie@0.5.0", "", { "dependencies": { "tslib": "^2.3.0" } }, "sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA=="], - "abbrev": ["abbrev@1.0.9", "", {}, "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q=="], - "abitype": ["abitype@1.0.8", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3 >=3.22.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg=="], - "adm-zip": ["adm-zip@0.4.16", "", {}, "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg=="], - "aes-js": ["aes-js@3.0.0", "", {}, "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="], - "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="], @@ -227,8 +172,6 @@ "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], - "array-back": ["array-back@3.1.0", "", {}, "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="], - "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], "ast-parents": ["ast-parents@0.0.1", "", {}, "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA=="], @@ -237,20 +180,8 @@ "async": ["async@1.5.2", "", {}, "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w=="], - "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], - - "atomic-sleep": ["atomic-sleep@1.0.0", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="], - - "axios": ["axios@1.11.0", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA=="], - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - - "bech32": ["bech32@1.1.4", "", {}, "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="], - - "bignumber.js": ["bignumber.js@9.3.1", "", {}, "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ=="], - "binary-extensions": ["binary-extensions@2.3.0", "", {}, "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="], "bn.js": ["bn.js@5.2.2", "", {}, "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw=="], @@ -265,32 +196,20 @@ "browser-stdout": ["browser-stdout@1.3.1", "", {}, "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="], - "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], - "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], - "buffer-reverse": ["buffer-reverse@1.0.1", "", {}, "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg=="], - - "bun-types": ["bun-types@1.2.20", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-pxTnQYOrKvdOwyiyd/7sMt9yFOenN004Y6O4lCcCUoKVej48FS5cvTw9geRaEcB9TsDZaJKAxPTVvi8tFsVuXA=="], - "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="], - "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], - "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], "camelcase": ["camelcase@6.3.0", "", {}, "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], - "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], + "chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], "ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], - "class-transformer": ["class-transformer@0.5.1", "", {}, "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="], - - "class-validator": ["class-validator@0.14.2", "", { "dependencies": { "@types/validator": "^13.11.8", "libphonenumber-js": "^1.11.1", "validator": "^13.9.0" } }, "sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw=="], - "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], "cli-boxes": ["cli-boxes@2.2.1", "", {}, "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="], @@ -301,40 +220,22 @@ "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], - "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], - "command-exists": ["command-exists@1.2.9", "", {}, "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="], - "command-line-args": ["command-line-args@5.2.1", "", { "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" } }, "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg=="], - - "command-line-usage": ["command-line-usage@6.1.3", "", { "dependencies": { "array-back": "^4.0.2", "chalk": "^2.4.2", "table-layout": "^1.0.2", "typical": "^5.2.0" } }, "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw=="], - "commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], - "cookie": ["cookie@0.4.2", "", {}, "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="], "cosmiconfig": ["cosmiconfig@8.3.6", "", { "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA=="], - "cross-fetch": ["cross-fetch@4.1.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw=="], - - "crypto-js": ["crypto-js@4.2.0", "", {}, "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="], - - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], - "death": ["death@1.1.0", "", {}, "sha512-vsV6S4KVHvTGxbEcij7hkWRv0It+sGGWVOM67dQde/o5Xjnr+KmLjxWJii2uEObIrt1CcM9w0Yaovx+iOlIL+w=="], "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], "decamelize": ["decamelize@4.0.0", "", {}, "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="], - "deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="], - "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], - "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], - "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="], "diff": ["diff@5.2.0", "", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="], @@ -343,8 +244,6 @@ "dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="], - "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - "elliptic": ["elliptic@6.6.1", "", { "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.1", "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" } }, "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g=="], "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -355,14 +254,6 @@ "error-ex": ["error-ex@1.3.2", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="], - "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], - - "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], - - "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], - - "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], "escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], @@ -377,16 +268,10 @@ "ethereum-bloom-filters": ["ethereum-bloom-filters@1.2.0", "", { "dependencies": { "@noble/hashes": "^1.4.0" } }, "sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA=="], - "ethereum-cryptography": ["ethereum-cryptography@1.2.0", "", { "dependencies": { "@noble/hashes": "1.2.0", "@noble/secp256k1": "1.7.1", "@scure/bip32": "1.1.5", "@scure/bip39": "1.1.1" } }, "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw=="], - - "ethers": ["ethers@5.8.0", "", { "dependencies": { "@ethersproject/abi": "5.8.0", "@ethersproject/abstract-provider": "5.8.0", "@ethersproject/abstract-signer": "5.8.0", "@ethersproject/address": "5.8.0", "@ethersproject/base64": "5.8.0", "@ethersproject/basex": "5.8.0", "@ethersproject/bignumber": "5.8.0", "@ethersproject/bytes": "5.8.0", "@ethersproject/constants": "5.8.0", "@ethersproject/contracts": "5.8.0", "@ethersproject/hash": "5.8.0", "@ethersproject/hdnode": "5.8.0", "@ethersproject/json-wallets": "5.8.0", "@ethersproject/keccak256": "5.8.0", "@ethersproject/logger": "5.8.0", "@ethersproject/networks": "5.8.0", "@ethersproject/pbkdf2": "5.8.0", "@ethersproject/properties": "5.8.0", "@ethersproject/providers": "5.8.0", "@ethersproject/random": "5.8.0", "@ethersproject/rlp": "5.8.0", "@ethersproject/sha2": "5.8.0", "@ethersproject/signing-key": "5.8.0", "@ethersproject/solidity": "5.8.0", "@ethersproject/strings": "5.8.0", "@ethersproject/transactions": "5.8.0", "@ethersproject/units": "5.8.0", "@ethersproject/wallet": "5.8.0", "@ethersproject/web": "5.8.0", "@ethersproject/wordlists": "5.8.0" } }, "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg=="], + "ethereum-cryptography": ["ethereum-cryptography@2.2.1", "", { "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", "@scure/bip32": "1.4.0", "@scure/bip39": "1.3.0" } }, "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg=="], "ethjs-unit": ["ethjs-unit@0.1.6", "", { "dependencies": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" } }, "sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw=="], - "eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="], - - "extract-files": ["extract-files@9.0.0", "", {}, "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ=="], - "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fast-diff": ["fast-diff@1.3.0", "", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], @@ -397,8 +282,6 @@ "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], - "fast-redact": ["fast-redact@3.5.0", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="], - "fast-uri": ["fast-uri@3.0.6", "", {}, "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw=="], "fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="], @@ -407,8 +290,6 @@ "fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="], - "find-replace": ["find-replace@3.0.0", "", { "dependencies": { "array-back": "^3.0.1" } }, "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="], - "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], "flat": ["flat@5.0.2", "", { "bin": { "flat": "cli.js" } }, "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="], @@ -417,8 +298,6 @@ "forge-std": ["forge-std@github:foundry-rs/forge-std#1eea5ba", {}, "foundry-rs-forge-std-1eea5ba"], - "form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="], - "fp-ts": ["fp-ts@1.19.3", "", {}, "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg=="], "fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], @@ -431,10 +310,6 @@ "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], - "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], - - "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], - "ghost-testrpc": ["ghost-testrpc@0.0.2", "", { "dependencies": { "chalk": "^2.4.2", "node-emoji": "^1.10.0" }, "bin": { "testrpc-sc": "./index.js" } }, "sha512-i08dAEgJ2g8z5buJIrCTduwPIhih3DP+hOCTyyryikfV8T0bNvHnGXO67i0DD1H4GBDETTclPy9njZbfluQYrQ=="], "glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="], @@ -447,26 +322,14 @@ "globby": ["globby@10.0.2", "", { "dependencies": { "@types/glob": "^7.1.1", "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.0.3", "glob": "^7.1.3", "ignore": "^5.1.1", "merge2": "^1.2.3", "slash": "^3.0.0" } }, "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg=="], - "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], - "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], - "graphql": ["graphql@16.11.0", "", {}, "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw=="], - - "graphql-request": ["graphql-request@3.7.0", "", { "dependencies": { "cross-fetch": "^3.0.6", "extract-files": "^9.0.0", "form-data": "^3.0.0" }, "peerDependencies": { "graphql": "14 - 16" } }, "sha512-dw5PxHCgBneN2DDNqpWu8QkbbJ07oOziy8z+bK/TAXufsOLaETuVO4GkXrbs0WjhdKhBMN3BkpN/RIvUHkmNUQ=="], - - "graphql-tag": ["graphql-tag@2.12.6", "", { "dependencies": { "tslib": "^2.1.0" }, "peerDependencies": { "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg=="], - "handlebars": ["handlebars@4.7.8", "", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="], "hardhat": ["hardhat@2.26.3", "", { "dependencies": { "@ethereumjs/util": "^9.1.0", "@ethersproject/abi": "^5.1.2", "@nomicfoundation/edr": "^0.11.3", "@nomicfoundation/solidity-analyzer": "^0.1.0", "@sentry/node": "^5.18.1", "adm-zip": "^0.4.16", "aggregate-error": "^3.0.0", "ansi-escapes": "^4.3.0", "boxen": "^5.1.2", "chokidar": "^4.0.0", "ci-info": "^2.0.0", "debug": "^4.1.1", "enquirer": "^2.3.0", "env-paths": "^2.2.0", "ethereum-cryptography": "^1.0.3", "find-up": "^5.0.0", "fp-ts": "1.19.3", "fs-extra": "^7.0.1", "immutable": "^4.0.0-rc.12", "io-ts": "1.10.4", "json-stream-stringify": "^3.1.4", "keccak": "^3.0.2", "lodash": "^4.17.11", "micro-eth-signer": "^0.14.0", "mnemonist": "^0.38.0", "mocha": "^10.0.0", "p-map": "^4.0.0", "picocolors": "^1.1.0", "raw-body": "^2.4.1", "resolve": "1.17.0", "semver": "^6.3.0", "solc": "0.8.26", "source-map-support": "^0.5.13", "stacktrace-parser": "^0.1.10", "tinyglobby": "^0.2.6", "tsort": "0.0.1", "undici": "^5.14.0", "uuid": "^8.3.2", "ws": "^7.4.6" }, "peerDependencies": { "ts-node": "*", "typescript": "*" }, "optionalPeers": ["ts-node", "typescript"], "bin": { "hardhat": "internal/cli/bootstrap.js" } }, "sha512-gBfjbxCCEaRgMCRgTpjo1CEoJwqNPhyGMMVHYZJxoQ3LLftp2erSVf8ZF6hTQC0r2wst4NcqNmLWqMnHg1quTw=="], "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], - "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], - - "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "hash.js": ["hash.js@1.1.7", "", { "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="], "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], @@ -477,16 +340,12 @@ "hmac-drbg": ["hmac-drbg@1.0.1", "", { "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg=="], - "hoist-non-react-statics": ["hoist-non-react-statics@3.3.2", "", { "dependencies": { "react-is": "^16.7.0" } }, "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="], - "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="], "https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], "iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], - "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], "immutable": ["immutable@4.3.7", "", {}, "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw=="], @@ -527,16 +386,12 @@ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], - "isows": ["isows@1.0.6", "", { "peerDependencies": { "ws": "*" } }, "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw=="], - "js-sha3": ["js-sha3@0.8.0", "", {}, "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="], "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], - "jsbi": ["jsbi@4.3.2", "", {}, "sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew=="], - "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], @@ -549,38 +404,26 @@ "keccak": ["keccak@3.0.4", "", { "dependencies": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", "readable-stream": "^3.6.0" } }, "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q=="], - "keccak256": ["keccak256@1.0.6", "", { "dependencies": { "bn.js": "^5.2.0", "buffer": "^6.0.3", "keccak": "^3.0.2" } }, "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw=="], - "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], "levn": ["levn@0.3.0", "", { "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA=="], - "libphonenumber-js": ["libphonenumber-js@1.12.12", "", {}, "sha512-aWVR6xXYYRvnK0v/uIwkf5Lthq9Jpn0N8TISW/oDTWlYB2sOimuiLn9Q26aUw4KxkJoiT8ACdiw44Y8VwKFIfQ=="], - "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], - "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], - "lodash.truncate": ["lodash.truncate@4.4.2", "", {}, "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="], "log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], - "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="], - "lru_map": ["lru_map@0.3.3", "", {}, "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ=="], - "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], - "memorystream": ["memorystream@0.3.1", "", {}, "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw=="], "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="], - "merkletreejs": ["merkletreejs@0.3.11", "", { "dependencies": { "bignumber.js": "^9.0.1", "buffer-reverse": "^1.0.1", "crypto-js": "^4.2.0", "treeify": "^1.1.0", "web3-utils": "^1.3.4" } }, "sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ=="], - "micro-eth-signer": ["micro-eth-signer@0.14.0", "", { "dependencies": { "@noble/curves": "~1.8.1", "@noble/hashes": "~1.7.1", "micro-packed": "~0.7.2" } }, "sha512-5PLLzHiVYPWClEvZIXXFu5yutzpadb73rnQCpUqIHu3No3coFuWQNfE5tkBQJ7djuLYl6aRLaS0MgWJYGoqiBw=="], "micro-ftch": ["micro-ftch@0.3.1", "", {}, "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg=="], @@ -589,19 +432,15 @@ "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="], - "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - - "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "minimalistic-assert": ["minimalistic-assert@1.0.1", "", {}, "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="], "minimalistic-crypto-utils": ["minimalistic-crypto-utils@1.0.1", "", {}, "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="], - "minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], - "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], + "mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], "mnemonist": ["mnemonist@0.38.5", "", { "dependencies": { "obliterator": "^2.0.0" } }, "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg=="], @@ -615,8 +454,6 @@ "node-emoji": ["node-emoji@1.11.0", "", { "dependencies": { "lodash": "^4.17.21" } }, "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A=="], - "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], - "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="], "nopt": ["nopt@3.0.6", "", { "dependencies": { "abbrev": "1" }, "bin": { "nopt": "./bin/nopt.js" } }, "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg=="], @@ -625,23 +462,15 @@ "number-to-bn": ["number-to-bn@1.7.0", "", { "dependencies": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" } }, "sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig=="], - "object-assign": ["object-assign@4.1.1", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="], - "obliterator": ["obliterator@2.0.5", "", {}, "sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw=="], - "on-exit-leak-free": ["on-exit-leak-free@2.1.2", "", {}, "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA=="], - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], - "optimism": ["optimism@0.18.1", "", { "dependencies": { "@wry/caches": "^1.0.0", "@wry/context": "^0.7.0", "@wry/trie": "^0.5.0", "tslib": "^2.3.0" } }, "sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ=="], - "optionator": ["optionator@0.8.3", "", { "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" } }, "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA=="], "os-tmpdir": ["os-tmpdir@1.0.2", "", {}, "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="], - "ox": ["ox@0.6.9", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug=="], - - "p-limit": ["p-limit@6.2.0", "", { "dependencies": { "yocto-queue": "^1.1.1" } }, "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA=="], + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], @@ -665,12 +494,6 @@ "pify": ["pify@4.0.1", "", {}, "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="], - "pino": ["pino@9.9.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", "pino-abstract-transport": "^2.0.0", "pino-std-serializers": "^7.0.0", "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", "thread-stream": "^3.0.0" }, "bin": { "pino": "bin.js" } }, "sha512-zxsRIQG9HzG+jEljmvmZupOMDUQ0Jpj0yAgE28jQvvrdYTlEaiGwelJpdndMl/MBuRr70heIj83QyqJUWaU8mQ=="], - - "pino-abstract-transport": ["pino-abstract-transport@2.0.0", "", { "dependencies": { "split2": "^4.0.0" } }, "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw=="], - - "pino-std-serializers": ["pino-std-serializers@7.0.0", "", {}, "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA=="], - "pluralize": ["pluralize@8.0.0", "", {}, "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="], "prelude-ls": ["prelude-ls@1.1.2", "", {}, "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="], @@ -681,45 +504,27 @@ "prettier-plugin-solidity": ["prettier-plugin-solidity@1.4.3", "", { "dependencies": { "@solidity-parser/parser": "^0.20.1", "semver": "^7.7.1" }, "peerDependencies": { "prettier": ">=2.3.0" } }, "sha512-Mrr/iiR9f9IaeGRMZY2ApumXcn/C5Gs3S7B7hWB3gigBFML06C0yEyW86oLp0eqiA0qg+46FaChgLPJCj/pIlg=="], - "process-warning": ["process-warning@5.0.0", "", {}, "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA=="], - - "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="], - - "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], "queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="], - "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], - "randombytes": ["randombytes@2.1.0", "", { "dependencies": { "safe-buffer": "^5.1.0" } }, "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ=="], "raw-body": ["raw-body@2.5.2", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA=="], - "react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="], - "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], - "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], - - "real-require": ["real-require@0.2.0", "", {}, "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg=="], + "readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], "rechoir": ["rechoir@0.6.2", "", { "dependencies": { "resolve": "^1.1.6" } }, "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw=="], "recursive-readdir": ["recursive-readdir@2.2.3", "", { "dependencies": { "minimatch": "^3.0.5" } }, "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA=="], - "reduce-flatten": ["reduce-flatten@2.0.0", "", {}, "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w=="], - - "reflect-metadata": ["reflect-metadata@0.2.2", "", {}, "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q=="], - - "rehackt": ["rehackt@0.1.0", "", { "peerDependencies": { "@types/react": "*", "react": "*" }, "optionalPeers": ["@types/react", "react"] }, "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw=="], - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], - "resolve": ["resolve@1.17.0", "", { "dependencies": { "path-parse": "^1.0.6" } }, "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w=="], + "resolve": ["resolve@1.1.7", "", {}, "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg=="], "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], @@ -729,14 +534,10 @@ "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], - "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], "sc-istanbul": ["sc-istanbul@0.4.6", "", { "dependencies": { "abbrev": "1.0.x", "async": "1.x", "escodegen": "1.8.x", "esprima": "2.7.x", "glob": "^5.0.15", "handlebars": "^4.0.1", "js-yaml": "3.x", "mkdirp": "0.5.x", "nopt": "3.x", "once": "1.x", "resolve": "1.1.x", "supports-color": "^3.1.0", "which": "^1.1.1", "wordwrap": "^1.0.0" }, "bin": { "istanbul": "lib/cli.js" } }, "sha512-qJFF/8tW/zJsbyfh/iT/ZM5QNHE3CXxtLJbZsL+CzdJLBsPD7SedJZoUA4d8iAcN2IoMp/Dx80shOOd2x96X/g=="], - "scrypt-js": ["scrypt-js@3.0.1", "", {}, "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="], - "semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], @@ -757,22 +558,16 @@ "solidity-coverage": ["solidity-coverage@0.8.16", "", { "dependencies": { "@ethersproject/abi": "^5.0.9", "@solidity-parser/parser": "^0.20.1", "chalk": "^2.4.2", "death": "^1.1.0", "difflib": "^0.2.4", "fs-extra": "^8.1.0", "ghost-testrpc": "^0.0.2", "global-modules": "^2.0.0", "globby": "^10.0.1", "jsonschema": "^1.2.4", "lodash": "^4.17.21", "mocha": "^10.2.0", "node-emoji": "^1.10.0", "pify": "^4.0.1", "recursive-readdir": "^2.2.2", "sc-istanbul": "^0.4.5", "semver": "^7.3.4", "shelljs": "^0.8.3", "web3-utils": "^1.3.6" }, "peerDependencies": { "hardhat": "^2.11.0" }, "bin": { "solidity-coverage": "plugins/bin.js" } }, "sha512-qKqgm8TPpcnCK0HCDLJrjbOA2tQNEJY4dHX/LSSQ9iwYFS973MwjtgYn2Iv3vfCEQJTj5xtm4cuUMzlJsJSMbg=="], - "sonic-boom": ["sonic-boom@4.2.0", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww=="], - - "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "source-map": ["source-map@0.2.0", "", { "dependencies": { "amdefine": ">=0.0.4" } }, "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA=="], "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], - "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], - "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], "stacktrace-parser": ["stacktrace-parser@0.1.11", "", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg=="], "statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="], - "string-format": ["string-format@2.0.0", "", {}, "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA=="], - "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], @@ -787,18 +582,10 @@ "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], - "symbol-observable": ["symbol-observable@4.0.0", "", {}, "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ=="], - "table": ["table@6.9.0", "", { "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" } }, "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A=="], - "table-layout": ["table-layout@1.0.2", "", { "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", "typical": "^5.2.0", "wordwrapjs": "^4.0.0" } }, "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A=="], - "text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="], - "thread-stream": ["thread-stream@3.1.0", "", { "dependencies": { "real-require": "^0.2.0" } }, "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A=="], - - "tiny-invariant": ["tiny-invariant@1.3.3", "", {}, "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg=="], - "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], "tmp": ["tmp@0.0.33", "", { "dependencies": { "os-tmpdir": "~1.0.2" } }, "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="], @@ -807,17 +594,7 @@ "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], - "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], - - "treeify": ["treeify@1.1.0", "", {}, "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A=="], - - "ts-command-line-args": ["ts-command-line-args@2.5.1", "", { "dependencies": { "chalk": "^4.1.0", "command-line-args": "^5.1.1", "command-line-usage": "^6.1.0", "string-format": "^2.0.0" }, "bin": { "write-markdown": "dist/write-markdown.js" } }, "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw=="], - - "ts-essentials": ["ts-essentials@7.0.3", "", { "peerDependencies": { "typescript": ">=3.7.0" } }, "sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ=="], - - "ts-invariant": ["ts-invariant@0.10.3", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ=="], - - "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], "tsort": ["tsort@0.0.1", "", {}, "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw=="], @@ -825,12 +602,8 @@ "type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], - "typechain": ["typechain@8.3.2", "", { "dependencies": { "@types/prettier": "^2.1.1", "debug": "^4.3.1", "fs-extra": "^7.0.0", "glob": "7.1.7", "js-sha3": "^0.8.0", "lodash": "^4.17.15", "mkdirp": "^1.0.4", "prettier": "^2.3.1", "ts-command-line-args": "^2.2.0", "ts-essentials": "^7.0.1" }, "peerDependencies": { "typescript": ">=4.3.0" }, "bin": { "typechain": "dist/cli/cli.js" } }, "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q=="], - "typescript": ["typescript@5.9.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A=="], - "typical": ["typical@4.0.0", "", {}, "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="], - "uglify-js": ["uglify-js@3.19.3", "", { "bin": { "uglifyjs": "bin/uglifyjs" } }, "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ=="], "undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="], @@ -847,20 +620,10 @@ "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "utils": ["utils@github:AngleProtocol/utils#bb85589", { "dependencies": { "@angleprotocol/sdk": "^2.34.7", "@merkl/registry": "latest" } }, "AngleProtocol-utils-bb85589"], - "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], - "validator": ["validator@13.15.15", "", {}, "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A=="], - - "viem": ["viem@2.28.0", "", { "dependencies": { "@noble/curves": "1.8.2", "@noble/hashes": "1.7.2", "@scure/bip32": "1.6.2", "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", "ox": "0.6.9", "ws": "8.18.1" }, "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-Z4W5O1pe+6pirYTFm451FcZmfGAUxUWt2L/eWC+YfTF28j/8rd7q6MBAi05lMN4KhLJjhN0s5YGIPB+kf1L20g=="], - "web3-utils": ["web3-utils@1.10.4", "", { "dependencies": { "@ethereumjs/util": "^8.1.0", "bn.js": "^5.2.1", "ethereum-bloom-filters": "^1.0.6", "ethereum-cryptography": "^2.1.2", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", "randombytes": "^2.1.0", "utf8": "3.0.0" } }, "sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A=="], - "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], - - "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], - "which": ["which@1.3.1", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "./bin/which" } }, "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="], "widest-line": ["widest-line@3.1.0", "", { "dependencies": { "string-width": "^4.0.0" } }, "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg=="], @@ -869,15 +632,13 @@ "wordwrap": ["wordwrap@1.0.0", "", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="], - "wordwrapjs": ["wordwrapjs@4.0.1", "", { "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" } }, "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA=="], - "workerpool": ["workerpool@6.5.1", "", {}, "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA=="], "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], - "ws": ["ws@8.18.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w=="], + "ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], @@ -887,69 +648,41 @@ "yargs-unparser": ["yargs-unparser@2.0.0", "", { "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", "flat": "^5.0.2", "is-plain-obj": "^2.1.0" } }, "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA=="], - "yocto-queue": ["yocto-queue@1.2.1", "", {}, "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg=="], - - "zen-observable": ["zen-observable@0.8.15", "", {}, "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="], - - "zen-observable-ts": ["zen-observable-ts@1.2.5", "", { "dependencies": { "zen-observable": "0.8.15" } }, "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg=="], - - "@ethereumjs/util/ethereum-cryptography": ["ethereum-cryptography@2.2.1", "", { "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", "@scure/bip32": "1.4.0", "@scure/bip39": "1.3.0" } }, "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg=="], - - "@ethersproject/providers/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], - - "@sentry/core/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - - "@sentry/hub/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - - "@sentry/minimal/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - - "@sentry/node/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - - "@sentry/tracing/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - - "@sentry/utils/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "boxen/type-fest": ["type-fest@0.20.2", "", {}, "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="], - "command-line-usage/array-back": ["array-back@4.0.2", "", {}, "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg=="], - - "command-line-usage/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], - - "command-line-usage/typical": ["typical@5.2.0", "", {}, "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="], - "elliptic/bn.js": ["bn.js@4.12.2", "", {}, "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw=="], - "escodegen/source-map": ["source-map@0.2.0", "", { "dependencies": { "amdefine": ">=0.0.4" } }, "sha512-CBdZ2oa/BHhS4xj5DlhjWNHcan57/5YuvfdLf17iVmIpd9KRm+DFLmC6nBNj+6Ua7Kt3TmOjDpQT1aTYOQtoUA=="], - - "ethereum-bloom-filters/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], - - "ethereum-cryptography/@noble/hashes": ["@noble/hashes@1.2.0", "", {}, "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ=="], - - "ethereum-cryptography/@scure/bip32": ["@scure/bip32@1.1.5", "", { "dependencies": { "@noble/hashes": "~1.2.0", "@noble/secp256k1": "~1.7.0", "@scure/base": "~1.1.0" } }, "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw=="], - - "ethereum-cryptography/@scure/bip39": ["@scure/bip39@1.1.1", "", { "dependencies": { "@noble/hashes": "~1.2.0", "@scure/base": "~1.1.0" } }, "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg=="], - "ethjs-unit/bn.js": ["bn.js@4.11.6", "", {}, "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="], "ghost-testrpc/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], "globby/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - "graphql-request/cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + "handlebars/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + + "hardhat/@ethereumjs/util": ["@ethereumjs/util@9.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^5.0.2", "ethereum-cryptography": "^2.2.1" } }, "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog=="], + + "hardhat/chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], - "graphql-request/form-data": ["form-data@3.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.35" } }, "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ=="], + "hardhat/ethereum-cryptography": ["ethereum-cryptography@1.2.0", "", { "dependencies": { "@noble/hashes": "1.2.0", "@noble/secp256k1": "1.7.1", "@scure/bip32": "1.1.5", "@scure/bip39": "1.1.1" } }, "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw=="], "hardhat/fs-extra": ["fs-extra@7.0.1", "", { "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="], + "hardhat/resolve": ["resolve@1.17.0", "", { "dependencies": { "path-parse": "^1.0.6" } }, "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w=="], + "hardhat/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "hardhat/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="], + "micro-eth-signer/@noble/curves": ["@noble/curves@1.8.2", "", { "dependencies": { "@noble/hashes": "1.7.2" } }, "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g=="], - "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "micro-eth-signer/@noble/hashes": ["@noble/hashes@1.7.2", "", {}, "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ=="], + + "micro-packed/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], - "mocha/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], + "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "mocha/escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], @@ -957,20 +690,14 @@ "number-to-bn/bn.js": ["bn.js@4.11.6", "", {}, "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA=="], - "p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + "readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], "rechoir/resolve": ["resolve@1.22.10", "", { "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" } }, "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w=="], - "recursive-readdir/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "sc-istanbul/glob": ["glob@5.0.15", "", { "dependencies": { "inflight": "^1.0.4", "inherits": "2", "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA=="], "sc-istanbul/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], - "sc-istanbul/mkdirp": ["mkdirp@0.5.6", "", { "dependencies": { "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw=="], - - "sc-istanbul/resolve": ["resolve@1.1.7", "", {}, "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg=="], - "sc-istanbul/supports-color": ["supports-color@3.2.3", "", { "dependencies": { "has-flag": "^1.0.0" } }, "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A=="], "shelljs/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], @@ -983,53 +710,27 @@ "solidity-coverage/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], + "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "stacktrace-parser/type-fest": ["type-fest@0.7.1", "", {}, "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg=="], "table/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], - "table-layout/array-back": ["array-back@4.0.2", "", {}, "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg=="], - - "table-layout/typical": ["typical@5.2.0", "", {}, "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="], - - "typechain/fs-extra": ["fs-extra@7.0.1", "", { "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw=="], - - "typechain/glob": ["glob@7.1.7", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ=="], - - "web3-utils/@ethereumjs/util": ["@ethereumjs/util@8.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", "micro-ftch": "^0.3.1" } }, "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA=="], - - "web3-utils/ethereum-cryptography": ["ethereum-cryptography@2.2.1", "", { "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", "@scure/bip32": "1.4.0", "@scure/bip39": "1.3.0" } }, "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg=="], - - "wordwrapjs/typical": ["typical@5.2.0", "", {}, "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg=="], - - "@ethereumjs/util/ethereum-cryptography/@noble/curves": ["@noble/curves@1.4.2", "", { "dependencies": { "@noble/hashes": "1.4.0" } }, "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw=="], - - "@ethereumjs/util/ethereum-cryptography/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], - - "@ethereumjs/util/ethereum-cryptography/@scure/bip32": ["@scure/bip32@1.4.0", "", { "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg=="], - - "@ethereumjs/util/ethereum-cryptography/@scure/bip39": ["@scure/bip39@1.3.0", "", { "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ=="], - - "command-line-usage/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], - - "command-line-usage/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - - "ethereum-cryptography/@scure/bip32/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - - "ethereum-cryptography/@scure/bip39/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - "ghost-testrpc/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], "ghost-testrpc/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], - "globby/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "hardhat/@ethereumjs/util/@ethereumjs/rlp": ["@ethereumjs/rlp@5.0.2", "", { "bin": { "rlp": "bin/rlp.cjs" } }, "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA=="], - "mocha/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + "hardhat/@ethereumjs/util/ethereum-cryptography": ["ethereum-cryptography@2.2.1", "", { "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", "@scure/bip32": "1.4.0", "@scure/bip39": "1.3.0" } }, "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg=="], - "p-locate/p-limit/yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "hardhat/chokidar/readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], - "recursive-readdir/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + "hardhat/ethereum-cryptography/@noble/hashes": ["@noble/hashes@1.2.0", "", {}, "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ=="], - "sc-istanbul/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "hardhat/ethereum-cryptography/@scure/bip32": ["@scure/bip32@1.1.5", "", { "dependencies": { "@noble/hashes": "~1.2.0", "@noble/secp256k1": "~1.7.0", "@scure/base": "~1.1.0" } }, "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw=="], + + "hardhat/ethereum-cryptography/@scure/bip39": ["@scure/bip39@1.1.1", "", { "dependencies": { "@noble/hashes": "~1.2.0", "@scure/base": "~1.1.0" } }, "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg=="], "sc-istanbul/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], @@ -1037,58 +738,20 @@ "sc-istanbul/supports-color/has-flag": ["has-flag@1.0.0", "", {}, "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA=="], - "shelljs/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - "solidity-coverage/chalk/ansi-styles": ["ansi-styles@3.2.1", "", { "dependencies": { "color-convert": "^1.9.0" } }, "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="], "solidity-coverage/chalk/supports-color": ["supports-color@5.5.0", "", { "dependencies": { "has-flag": "^3.0.0" } }, "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="], "table/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], - "typechain/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - - "web3-utils/@ethereumjs/util/@ethereumjs/rlp": ["@ethereumjs/rlp@4.0.1", "", { "bin": { "rlp": "bin/rlp" } }, "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw=="], - - "web3-utils/ethereum-cryptography/@noble/curves": ["@noble/curves@1.4.2", "", { "dependencies": { "@noble/hashes": "1.4.0" } }, "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw=="], - - "web3-utils/ethereum-cryptography/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], - - "web3-utils/ethereum-cryptography/@scure/bip32": ["@scure/bip32@1.4.0", "", { "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg=="], - - "web3-utils/ethereum-cryptography/@scure/bip39": ["@scure/bip39@1.3.0", "", { "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ=="], - - "@ethereumjs/util/ethereum-cryptography/@scure/bip32/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - - "@ethereumjs/util/ethereum-cryptography/@scure/bip39/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - - "command-line-usage/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], - - "command-line-usage/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "ghost-testrpc/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], "ghost-testrpc/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "globby/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "mocha/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - - "sc-istanbul/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "shelljs/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - "solidity-coverage/chalk/ansi-styles/color-convert": ["color-convert@1.9.3", "", { "dependencies": { "color-name": "1.1.3" } }, "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="], "solidity-coverage/chalk/supports-color/has-flag": ["has-flag@3.0.0", "", {}, "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="], - "typechain/glob/minimatch/brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], - - "web3-utils/ethereum-cryptography/@scure/bip32/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - - "web3-utils/ethereum-cryptography/@scure/bip39/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], - - "command-line-usage/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], - "ghost-testrpc/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], "solidity-coverage/chalk/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], diff --git a/contracts/DistributionCreator.sol b/contracts/DistributionCreator.sol index 20435ac6..2d9523ce 100644 --- a/contracts/DistributionCreator.sol +++ b/contracts/DistributionCreator.sol @@ -231,23 +231,31 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @dev Cannot change rewardToken, amount, or creator address /// @dev Can only update startTimestamp if the campaign has not yet started /// @dev New end time (startTimestamp + duration) must be in the future - /// @dev The Merkl engine validates override correctness; invalid overrides are ignored - /// @dev In the case of an invalid override, the campaign may not be processed and fees may still be taken by the Merkl engine + /// @dev The Merkl engine validates overrides and rejects invalid modifications, including attempts to circumvent campaign-specific fee rates + /// @dev The rejection of invalid modifications leads to the campaign being parsed as invalid and the leftover reward tokens allocated to the campaign creator address + /// @dev Invalid overrides may result in the campaign not being processed while fees are still deducted function overrideCampaign(bytes32 _campaignId, CampaignParameters memory newCampaign) external { CampaignParameters memory _campaign = campaign(_campaignId); _isValidOperator(_campaign.creator); + + CampaignParameters memory overriddenCampaign = campaignOverrides[_campaignId]; + if (overriddenCampaign.campaignId != bytes32(0)) { + _campaign = overriddenCampaign; + } + if ( - newCampaign.rewardToken != _campaign.rewardToken || - newCampaign.amount != _campaign.amount || - (newCampaign.startTimestamp != _campaign.startTimestamp && block.timestamp > _campaign.startTimestamp) || // Allow to update startTimestamp before campaign start - // End timestamp should be in the future - newCampaign.duration + _campaign.startTimestamp <= block.timestamp + newCampaign.rewardToken != _campaign.rewardToken || // Reward token must remain the same + newCampaign.amount != _campaign.amount || // Campaign amount cannot be changed + _campaign.duration + _campaign.startTimestamp <= block.timestamp || // Campaign must not have ended otherwise no point in overriding + (newCampaign.amount * HOUR) / newCampaign.duration < rewardTokenMinAmounts[newCampaign.rewardToken] || + (newCampaign.startTimestamp != _campaign.startTimestamp && block.timestamp > _campaign.startTimestamp) || // Allow to update startTimestamp only before campaign start ) revert Errors.InvalidOverride(); newCampaign.campaignId = _campaignId; // The manager address cannot be changed newCampaign.creator = _campaign.creator; campaignOverrides[_campaignId] = newCampaign; + // There could be duplicate timestamps in the array if multiple overrides happen in the same block campaignOverridesTimestamp[_campaignId].push(block.timestamp); emit CampaignOverride(_campaignId, newCampaign); } @@ -259,9 +267,18 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @dev Can only be called after the campaign has ended (startTimestamp + duration has passed) /// @dev Reallocation validity is determined by the Merkl engine; invalid reallocations are ignored function reallocateCampaignRewards(bytes32 _campaignId, address[] memory froms, address to) external { + if (to == address(0)) revert Errors.ZeroAddress(); CampaignParameters memory _campaign = campaign(_campaignId); _isValidOperator(_campaign.creator); - if (block.timestamp < _campaign.startTimestamp + _campaign.duration) revert Errors.InvalidReallocation(); + + // Check campaign end time using the overridden parameters if they exist + uint32 endTimestamp = _campaign.startTimestamp + _campaign.duration; + CampaignParameters memory overriddenCampaign = campaignOverrides[_campaignId]; + if (overriddenCampaign.campaignId != bytes32(0)) { + endTimestamp = overriddenCampaign.startTimestamp + overriddenCampaign.duration; + } + + if (block.timestamp < endTimestamp) revert Errors.InvalidReallocation(); uint256 fromsLength = froms.length; for (uint256 i; i < fromsLength; ) { @@ -278,10 +295,11 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @param user Address whose balance will be increased /// @param rewardToken Token to deposit /// @param amount Amount to deposit - /// @dev When called by a governor, the user must have sent tokens to the contract beforehand + /// @dev When called by a governor, the user MUST have sent tokens to the contract beforehand /// @dev Can be used to deposit on behalf of another user /// @dev WARNING: Do not use with any non strictly standard ERC20 (like rebasing tokens) as they will cause accounting issues function increaseTokenBalance(address user, address rewardToken, uint256 amount) external { + if (user == address(0)) revert Errors.ZeroAddress(); if (!accessControlManager.isGovernor(msg.sender)) IERC20(rewardToken).safeTransferFrom(msg.sender, address(this), amount); _updateBalance(user, rewardToken, creatorBalance[user][rewardToken] + amount); } @@ -314,7 +332,15 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @param amount Amount to decrease the allowance by /// @dev Only callable by the user themselves or a governor function decreaseTokenAllowance(address user, address operator, address rewardToken, uint256 amount) external onlyUserOrGovernor(user) { - _updateAllowance(user, operator, rewardToken, creatorAllowance[user][operator][rewardToken] - amount); + uint256 currentAllowance = creatorAllowance[user][operator][rewardToken]; + uint256 newAllowance; + if (amount >= currentAllowance) { + newAllowance = 0; + } else { + newAllowance = currentAllowance - amount; + } + + _updateAllowance(user, operator, rewardToken, newAllowance); } /// @notice Toggles an operator's authorization to create and manage campaigns on behalf of a user @@ -402,32 +428,29 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { return campaignListReallocation[_campaignId]; } + /// @notice Returns the address at a specific index in the campaign reallocation list + /// @param _campaignId ID of the campaign + /// @param index Index in the reallocation list + /// @return Address at the specified index that had rewards reallocated away + function getCampaignListReallocationAt(bytes32 _campaignId, uint256 index) external view returns (address) { + return campaignListReallocation[_campaignId][index]; + } /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GOVERNANCE FUNCTIONS //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ - /// @notice Updates the Distributor contract address that receives and distributes rewards - /// @param _distributor New Distributor contract address + /// @notice Recovers tokens from the contract + /// @param token Token address to recover + /// @param amount Amount of tokens to recover + /// @param to Address that will receive the recovered tokens /// @dev Only callable by governor - function setNewDistributor(address _distributor) external onlyGovernor { - if (_distributor == address(0)) revert Errors.InvalidParam(); - distributor = _distributor; - emit DistributorUpdated(_distributor); - } - - /// @notice Withdraws accumulated protocol fees to a specified address - /// @param tokens Array of token addresses to withdraw fees from - /// @param to Address that will receive the withdrawn fees - /// @dev Only callable by governor - /// @dev Transfers the entire balance of each token held by the contract - function recoverFees(IERC20[] calldata tokens, address to) external onlyGovernor { - uint256 tokensLength = tokens.length; - for (uint256 i; i < tokensLength; ) { - tokens[i].safeTransfer(to, tokens[i].balanceOf(address(this))); - unchecked { - ++i; - } - } + /// @dev WARNING: Be extremely careful not to withdraw tokens that have been predeposited by users via increaseTokenBalance + /// @dev Withdrawing predeposited user tokens will break the accounting system and cause loss of funds for users + /// @dev This function should only be used to recover tokens accidentally sent to the contract or accumulated protocol fees + /// @dev Always verify that the amount being recovered does not exceed fees and does not include user predeposits + function recover(address token, uint256 amount, address to) external onlyGovernor { + if (to == address(0)) revert Errors.ZeroAddress(); + IERC20(token).safeTransfer(to, amount); } /// @notice Updates the address that receives protocol fees from campaign creation @@ -477,6 +500,7 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @param userFeeRebate Rebate amount in base 10^9 /// @dev Only callable by governor or guardian function setUserFeeRebate(address user, uint256 userFeeRebate) external onlyGovernorOrGuardian { + if (userFeeRebate > BASE_9) userFeeRebate = BASE_9; feeRebate[user] = userFeeRebate; emit FeeRebateUpdated(user, userFeeRebate); } @@ -497,6 +521,7 @@ contract DistributionCreator is UUPSHelper, ReentrancyGuardUpgradeable { /// @dev Only callable by governor or guardian /// @dev Setting amount to 0 effectively removes the token from the whitelist /// @dev Prevents duplicate entries when adding previously removed tokens + /// @dev WARNING: Non-standard tokens (e.g., tokens with fee-on-transfer, rebasing tokens) must not be whitelisted as they break the Merkl accounting logic function setRewardTokenMinAmounts(address[] calldata tokens, uint256[] calldata amounts) external onlyGovernorOrGuardian { uint256 tokensLength = tokens.length; if (tokensLength != amounts.length) revert Errors.InvalidLengths(); diff --git a/contracts/Distributor.sol b/contracts/Distributor.sol index 51efa00f..0ac6068b 100644 --- a/contracts/Distributor.sol +++ b/contracts/Distributor.sol @@ -285,6 +285,7 @@ contract Distributor is UUPSHelper { /// @dev Requires depositing disputeAmount of disputeToken as collateral /// @dev Can only dispute within disputePeriod after a tree update /// @dev Deposit is slashed if dispute is rejected, returned if dispute is valid + /// @dev If malicious addresses repeatedly dispute to DOS the system, the solution is to increase the disputeToken amount via governance function disputeTree(string memory reason) external { if (disputer != address(0)) revert Errors.UnresolvedDispute(); if (block.timestamp >= endOfDisputePeriod) revert Errors.InvalidDispute(); @@ -349,6 +350,7 @@ contract Distributor is UUPSHelper { /// @dev Only callable by governor /// @dev If valid: returns deposit to disputer and reverts to lastTree /// @dev If invalid: sends deposit to governor and extends dispute period + /// @dev If the disputer is blacklisted on the disputeToken contract, the only resolution is to call this function with valid=false from a non-blacklisted governor address function resolveDispute(bool valid) external onlyGovernor { if (disputer == address(0)) revert Errors.NoDispute(); if (valid) { @@ -469,7 +471,7 @@ contract Distributor is UUPSHelper { address recipient = recipients[i]; // Only `msg.sender` can set a different recipient for itself within the context of a call to claim // The recipient set in the context of the call to `claim` can override the default recipient set by the user - if (msg.sender != user || recipient == address(0)) { + if ((msg.sender != user && tx.origin != user) || recipient == address(0)) { address userSetRecipient = claimRecipient[user][token]; if (userSetRecipient == address(0)) userSetRecipient = claimRecipient[user][address(0)]; if (userSetRecipient == address(0)) recipient = user; @@ -479,7 +481,7 @@ contract Distributor is UUPSHelper { if (toSend != 0) { IERC20(token).safeTransfer(recipient, toSend); if (data.length != 0) { - try IClaimRecipient(recipient).onClaim(user, token, amount, data) returns (bytes32 callbackSuccess) { + try IClaimRecipient(recipient).onClaim(user, token, toSend, data) returns (bytes32 callbackSuccess) { if (callbackSuccess != CALLBACK_SUCCESS) revert Errors.InvalidReturnMessage(); } catch {} } @@ -541,6 +543,7 @@ contract Distributor is UUPSHelper { /// @param user User for whom to set the recipient /// @param recipient Address that will receive claimed tokens /// @param token Token for which recipient is set (address(0) = all tokens) + /// @dev WARNING: If setting a contract as recipient that implements onClaim logic, be extremely careful about its implementation as it will be called during claim execution function _setClaimRecipient(address user, address recipient, address token) internal { claimRecipient[user][token] = recipient; emit ClaimRecipientUpdated(user, recipient, token); diff --git a/contracts/struct/CampaignParameters.sol b/contracts/struct/CampaignParameters.sol index 8dc0bdd7..b44cb880 100644 --- a/contracts/struct/CampaignParameters.sol +++ b/contracts/struct/CampaignParameters.sol @@ -25,8 +25,6 @@ struct CampaignParameters { /// @notice Unix timestamp when reward distribution begins uint32 startTimestamp; /// @notice Total duration of the campaign in seconds - /// @dev Must be a multiple of EPOCH_DURATION (3600 seconds / 1 hour) - /// @dev Must be at least EPOCH_DURATION (1 hour minimum) uint32 duration; /// @notice Encoded campaign-specific parameters /// @dev Encoding structure depends on campaignType diff --git a/foundry.toml b/foundry.toml index c5cdde79..d0213959 100644 --- a/foundry.toml +++ b/foundry.toml @@ -100,24 +100,26 @@ redbelly="${REDBELLY_NODE_URI}" saga="${SAGA_NODE_URI}" ethereal="${ETHEREAL_NODE_URI}" monad="${MONAD_NODE_URI}" +stable="${STABLE_NODE_URI}" +plume="${PLUME_NODE_URI}" [etherscan] localhost = { url = "http://localhost:4000", key = "none" } -mainnet = { chainId = 1, key = "${MAINNET_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1}" } -polygon = { chainId = 137, key = "${POLYGON_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_137}" } +mainnet = { chainId = 1, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1}" } +polygon = { chainId = 137, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_137}" } fantom = { chainId = 250, key = "${FANTOM_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_250}" } -optimism = { chainId = 10, key = "${OPTIMISM_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_10}" } -arbitrum = { chainId = 42161, key = "${ARBITRUM_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_42161}" } +optimism = { chainId = 10, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_10}" } +arbitrum = { chainId = 42161, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_42161}" } avalanche = { chainId = 43114, key = "${AVALANCHE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_43114}" } -bsc = { chainId = 56, key = "${BSC_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_56}" } -gnosis = { chainId = 100, key = "${GNOSIS_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_100}" } +bsc = { chainId = 56, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_56}" } +gnosis = { chainId = 100, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_100}" } polygonzkevm = { chainId = 1101, key = "${POLYGONZKEVM_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1101}" } -base = { chainId = 8453, key = "${BASE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_8453}" } +base = { chainId = 8453, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_8453}" } bob = { chainId = 60808, key = "${BOB_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_60808}" } -linea = { chainId = 59144, key = "${LINEA_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_59144}" } -zksync = { chainId = 324, key = "${ZKSYNC_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_324}" } +linea = { chainId = 59144, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_59144}" } +zksync = { chainId = 324, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_324}" } mantle = { chainId = 5000, key = "${MANTLE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_5000}" } -blast = { chainId = 81457, key = "${BLAST_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_81457}" } +blast = { chainId = 81457, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_81457}" } mode = { chainId = 34443, key = "${MODE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_34443}" } thundercore = { chainId = 108, key = "${THUNDERCORE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_108}" } coredao = { chainId = 1116, key = "${COREDAO_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1116}" } @@ -125,7 +127,7 @@ xlayer = { chainId = 196, key = "${XLAYER_ETHERSCAN_API_KEY}", url = "${VERIFIER taiko = { chainId = 167000, key = "${TAIKO_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_167000}" } fuse = { chainId = 122, key = "${FUSE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_122}" } immutable = { chainId = 13371, key = "${IMMUTABLE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_13371}" } -scroll = { chainId = 534352, key = "${SCROLL_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_534352}" } +scroll = { chainId = 534352, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_534352}" } manta = { chainId = 169, key = "${MANTA_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_169}" } sei = { chainId = 1329, key = "${SEI_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1329}" } celo = { chainId = 42220, key = "${CELO_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_42220}" } @@ -134,28 +136,30 @@ astar = { chainId = 592, key = "${ASTAR_ETHERSCAN_API_KEY}", url = "${VERIFIER_U rootstock = { chainId = 30, key = "${ROOTSTOCK_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_30}" } moonbeam = { chainId = 1284, key = "${MOONBEAM_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1284}" } skale = { chainId = 2046399126, key = "${SKALE_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_2046399126}" } -worldchain = { chainId = 480, key = "${WORLDCHAIN_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_480}" } +worldchain = { chainId = 480, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_480}" } lisk = { chainId = 1135, key = "${LISK_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1135}" } etherlink = { chainId = 42793, key = "${ETHERLINK_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_42793}" } -swell = { chainId = 1923, key = "${SWELL_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1923}" } -sonic = { chainId = 146, key = "${SONIC_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_146}" } -corn = { chainId = 21000000, key = "${CORN_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_21000000}" } +swell = { chainId = 1923, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_1923}" } +sonic = { chainId = 146, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_146}" } +corn = { chainId = 21000000, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_21000000}" } ink = { chainId = 57073, key = "${INK_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_57073}" } ronin = { chainId = 2020, key = "${RONIN_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_2020}" } flow = { chainId = 747, key = "${FLOW_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_747}" } -berachain = { chainId = 80094, key = "${BERACHAIN_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_80094}" } +berachain = { chainId = 80094, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_80094}" } nibiru = { chainId = 6900, key = "${NIBIRU_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_6900}" } zircuit = { chainId = 48900, key = "${ZIRCUIT_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_48900}" } apechain = { chainId = 33139, key = "${APECHAIN_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_33139}" } -hyperevm = { chainId = 999, key = "${HYPEREVM_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_999}" } +hyperevm = { chainId = 999, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_999}" } hemi = { chainId = 43111, key = "${HEMI_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_43111}" } xdc = { chainId = 50, key = "${XDC_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_50}" } -katana = {chainId = 747474, key = "${KATANA_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_747474}" } +katana = {chainId = 747474, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_747474}" } tac = {chainId = 239, key = "${TAC_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_239}" } plasma = {chainId = 9745, key = "${PLASMA_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_9745}" } mezo = {chainId = 31612, key = "${MEZO_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_31612}" } redbelly = {chainId = 151, key = "${REDBELLY_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_151}" } saga = {chainId = 5464, key = "${SAGA_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_5464}" } ethereal = {chainId = 5064014, key = "none", url = "${VERIFIER_URL_5064014}" } -monad = {chaindId = 143, key = "${MONAD_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_143}" } +monad = {chaindId = 143, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_143}" } +stable = {chaindId = 988, key = "${ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_988}" } +plume = {chaindId = 98866, key = "${PLUME_ETHERSCAN_API_KEY}", url = "${VERIFIER_URL_98866}" } \ No newline at end of file diff --git a/funding.json b/funding.json deleted file mode 100644 index baa854f4..00000000 --- a/funding.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "opRetro": { - "projectId": "0xe6320d26e53c8e3221749e95fa5bace2db4851af27b5288771f59efd3b861358" - } - } \ No newline at end of file diff --git a/helpers/foundryMultiChainScript.sh b/helpers/foundryMultiChainScript.sh index d6e9c2e0..84f15afd 100755 --- a/helpers/foundryMultiChainScript.sh +++ b/helpers/foundryMultiChainScript.sh @@ -53,17 +53,17 @@ function get_verify_string() { local verifier_type_var="VERIFIER_TYPE_${chain_id}" local verifier_type=$(eval "echo \$$verifier_type_var") - + if [ ! -z "${verifier_type}" ]; then verify_string="--verify --verifier ${verifier_type}" - + # Add verifier URL if present local verifier_url_var="VERIFIER_URL_${chain_id}" local verifier_url=$(eval "echo \$$verifier_url_var") if [ ! -z "${verifier_url}" ]; then verify_string="${verify_string} --verifier-url ${verifier_url}" fi - + # Add API key if present local verifier_api_key_var="VERIFIER_API_KEY_${chain_id}" local verifier_api_key=$(eval "echo \$$verifier_api_key_var") @@ -73,9 +73,14 @@ function get_verify_string() { else verify_string="${verify_string} --verifier-api-key ${verifier_api_key}" fi + elif [ "${verifier_type}" == "etherscan" ]; then + # Use global ETHERSCAN_API_KEY if no chain-specific key is set + if [ ! -z "$ETHERSCAN_API_KEY" ]; then + verify_string="${verify_string} --etherscan-api-key $ETHERSCAN_API_KEY" + fi fi fi - + echo "$verify_string" } diff --git a/logo.svg b/logo.svg deleted file mode 100644 index ccd539ab..00000000 --- a/logo.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/scripts/DistributionCreator.s.sol b/scripts/DistributionCreator.s.sol index 1b10a5a9..16f3a5a6 100644 --- a/scripts/DistributionCreator.s.sol +++ b/scripts/DistributionCreator.s.sol @@ -9,9 +9,11 @@ import { IERC20Metadata } from "@openzeppelin/contracts/interfaces/IERC20Metadat import { BaseScript } from "./utils/Base.s.sol"; import { DistributionCreator } from "../contracts/DistributionCreator.sol"; +import { Distributor } from "../contracts/Distributor.sol"; import { IAccessControlManager } from "../contracts/interfaces/IAccessControlManager.sol"; import { CampaignParameters } from "../contracts/struct/CampaignParameters.sol"; import { MockToken } from "../contracts/mock/MockToken.sol"; +import { AccessControlEnumerableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol"; // Base contract with shared utilities contract DistributionCreatorScript is BaseScript { @@ -61,27 +63,6 @@ contract DeployImplementation is DistributionCreatorScript { } } -// SetNewDistributor script -contract SetNewDistributor is DistributionCreatorScript { - function run() external { - // MODIFY THIS VALUE TO SET YOUR DESIRED DISTRIBUTOR ADDRESS - address distributor = address(0); - _run(distributor); - } - - function run(address distributor) external { - _run(distributor); - } - - function _run(address _distributor) internal broadcast { - uint256 chainId = block.chainid; - address creatorAddress = 0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd; - - DistributionCreator(creatorAddress).setNewDistributor(_distributor); - - console.log("New distributor set to:", _distributor); - } -} // SetFees script contract SetFees is DistributionCreatorScript { @@ -153,14 +134,14 @@ contract RecoverFees is DistributionCreatorScript { // SetUserFeeRebate script contract SetUserFeeRebate is DistributionCreatorScript { - // forge script scripts/DistributionCreator.s.sol:SetUserFeeRebate --rpc-url bsc --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast --legacy + // forge script scripts/DistributionCreator.s.sol:SetUserFeeRebate --rpc-url stable --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast function run() external { // MODIFY THESE VALUES TO SET YOUR DESIRED USER AND REBATE // 1_000_000_000 = 100% // 250_000_000 = 25% // 330_000_000 = 3 - address user = address(0x19674E9Af1A04DAf183F8E1A23E0afc2bc79A939); - uint256 rebate = 1_000_000_000; // 100% 500000000 + address user = address(0xb67b9d2b188AD91ebcb5ba34b3E3fFB2c013d940); + uint256 rebate = 1_000_000_000; // 100% _run(user, rebate); } @@ -175,14 +156,16 @@ contract SetUserFeeRebate is DistributionCreatorScript { // SetRewardTokenMinAmounts script contract SetRewardTokenMinAmounts is DistributionCreatorScript { - // forge script scripts/DistributionCreator.s.sol:SetRewardTokenMinAmounts --rpc-url xdc --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast --legacy + // forge script scripts/DistributionCreator.s.sol:SetRewardTokenMinAmounts --rpc-url stable --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast function run() external { console.log("DEPLOYER_ADDRESS:", broadcaster); // MODIFY THESE VALUES TO SET YOUR DESIRED TOKENS AND AMOUNTS - address[] memory tokens = new address[](1); - uint256[] memory amounts = new uint256[](1); - tokens[0] = 0xc3ef7ed4F97450Ae8dA2473068375788BdeB5c5c; - amounts[0] = 1 ether / 10; // 0.1 tokens with 18 decimals + address[] memory tokens = new address[](2); + uint256[] memory amounts = new uint256[](2); + tokens[0] = 0xA87D4F27F49D335ab1deEe6b9c43404414Bee214; + tokens[1] = 0x09f143d3Af1Af9af6AB6BCe1B53fc5a8dc1baA79; + amounts[0] = 0.1 ether; // 1 token with 18 decimals + amounts[1] = 0.1 ether; // 1 token with 18 decimals _run(tokens, amounts); } diff --git a/scripts/Distributor.s.sol b/scripts/Distributor.s.sol index 14e31ea3..86c77081 100644 --- a/scripts/Distributor.s.sol +++ b/scripts/Distributor.s.sol @@ -68,13 +68,11 @@ contract UpdateTree is DistributorScript { contract DisputeTree is DistributorScript { function run() external broadcast { // MODIFY THIS VALUE TO SET YOUR DESIRED REASON + // forge script scripts/Distributor.s.sol:DisputeTree --rpc-url saga --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast string memory reason = "reason"; _run(reason); } - function run(string calldata reason) external broadcast { - _run(reason); - } function _run(string memory reason) internal { uint256 chainId = block.chainid; diff --git a/scripts/PointToken.s.sol b/scripts/PointToken.s.sol index 9220c60a..aa859ef5 100644 --- a/scripts/PointToken.s.sol +++ b/scripts/PointToken.s.sol @@ -17,11 +17,11 @@ contract PointTokenScript is BaseScript { // Deploy script contract DeployPointToken is PointTokenScript { function run() external broadcast { - // forge script scripts/PointToken.s.sol:DeployPointToken --rpc-url arbitrum --broadcast --verify -vvvv + // forge script scripts/PointToken.s.sol:DeployPointToken --rpc-url base --broadcast --verify -vvvv uint256 chainId = block.chainid; // MODIFY THESE VALUES TO SET YOUR DESIRED TOKEN PARAMETERS - string memory name = "Stable Tracking"; - string memory symbol = "stbl-tracking"; + string memory name = "almanakCurveLP1"; + string memory symbol = "almanakCurveLP1"; address minter = 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701; uint256 amount = 10_000_000_000 * 1e18; address creator = 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701; @@ -62,8 +62,8 @@ contract DeployPointToken is PointTokenScript { token.toggleWhitelistedRecipient(0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae); token.toggleWhitelistedRecipient(0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd); token.toggleWhitelistedRecipient(0xeaC6A75e19beB1283352d24c0311De865a867DAB); - token.toggleWhitelistedRecipient(0x1A2039792b43C150d3bE02135978A5c3f4d874F4); - token.transfer(0x1A2039792b43C150d3bE02135978A5c3f4d874F4, 1e10 * 1e18); + token.toggleWhitelistedRecipient(0x01076B158f16226278f17E0551dDc185cCF53F27); + token.transfer(0x01076B158f16226278f17E0551dDc185cCF53F27, 1e10 * 1e18); console.log("Whitelisted recipients:"); // transfer to the SAFE diff --git a/scripts/deployPullTokenWrapper.s.sol b/scripts/deployPullTokenWrapper.s.sol index 082b4d99..b7755cf7 100644 --- a/scripts/deployPullTokenWrapper.s.sol +++ b/scripts/deployPullTokenWrapper.s.sol @@ -16,43 +16,57 @@ import { IAccessControlManager } from "../contracts/interfaces/IAccessControlMan import { MockToken } from "../contracts/mock/MockToken.sol"; contract DeployPullTokenWrapper is BaseScript { - // forge script scripts/deployPullTokenWrapper.s.sol --rpc-url plasma --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast --verify + // forge script scripts/deployPullTokenWrapper.s.sol --rpc-url mainnet --sender 0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701 --broadcast --verify function run() public { uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); vm.startBroadcast(deployerPrivateKey); address distributionCreator = 0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd; // ------------------------------------------------------------------------ // TO EDIT - address underlying = 0x5aA4bc74811D672DA5308019dA4779f673e60B47; + address underlying = 0xAA6e91C82942aeAE040303Bf96c15a6dBcB82CA0; address holder = 0xdef1FA4CEfe67365ba046a7C630D6B885298E210; // Need to choose the implementation type and if implementation needs to be deployed + // address implementation = address(new PullTokenWrapperAllow()); // address implementation = address(new PullTokenWrapperWithdraw()); - address implementation = address(new PullTokenWrapperAllow()); + // Ethereum implementation of PullTokenWrapperAllow // address implementation = 0x979a04fd2f3A6a2B3945A715e24b974323E93567; // Ethereum implementation of PullTokenWrapperWithdraw - // address implementation = 0x721d37cf37e230E120a09adbBB7aAB0CF729AcA1 + address implementation = 0x721d37cf37e230E120a09adbBB7aAB0CF729AcA1; // Keeping the same name and symbol as the original underlying token so it's invisible for users - string memory name = string(abi.encodePacked(IERC20Metadata(underlying).name(), " (wrapped)")); - string memory symbol = IERC20Metadata(underlying).symbol(); + // string memory name = string(abi.encodePacked(IERC20Metadata(underlying).name(), " (wrapped)")); + // string memory symbol = IERC20Metadata(underlying).symbol(); // Names to override if deploying a PullTokenWrapperWithdraw implementation - // name = "USDT0 (wrapped)"; - // symbol = "USDT0"; + string memory name = "EURC (wrapped)"; + string memory symbol = "EURC"; // ------------------------------------------------------------------------ console.log("PullTokenWrapper Implementation:", address(implementation)); - // Deploy proxy - ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), ""); + // Encode initialization data + bytes memory initData = abi.encodeWithSelector( + PullTokenWrapperAllow.initialize.selector, + underlying, + distributionCreator, + holder, + name, + symbol + ); + + // Deploy proxy with initialization data (atomically initializes in constructor) + ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), initData); console.log("PullTokenWrapper Proxy:", address(proxy)); - // Initialize - PullTokenWrapperAllow(address(proxy)).initialize(underlying, distributionCreator, holder, name, symbol); + // Read and log the implementation address from the proxy to avoid hijack attacks + // ERC1967 implementation slot: keccak256("eip1967.proxy.implementation") - 1 + bytes32 implSlot = bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1); + address storedImplementation = address(uint160(uint256(vm.load(address(proxy), implSlot)))); + console.log("Proxy Implementation (verified):", storedImplementation); vm.stopBroadcast(); } diff --git a/scripts/deployReferralRegistry.s.sol b/scripts/deployReferralRegistry.s.sol index cd68bd50..8c0b91ad 100644 --- a/scripts/deployReferralRegistry.s.sol +++ b/scripts/deployReferralRegistry.s.sol @@ -20,18 +20,24 @@ contract DeployReferralRegistry is BaseScript { IAccessControlManager accessControlManager = distributionCreator.accessControlManager(); // Deploy implementation - /* + address implementation = address(new ReferralRegistry()); console.log("ReferralRegistry Implementation:", implementation); - // Deploy proxy - ERC1967Proxy proxy = new ERC1967Proxy(implementation, ""); + // Encode initialization data + bytes memory initData = abi.encodeWithSelector( + ReferralRegistry.initialize.selector, + accessControlManager, + feeSetup, + feeRecipient + ); + + // Deploy proxy with initialization data (atomically initializes in constructor) + ERC1967Proxy proxy = new ERC1967Proxy(implementation, initData); console.log("ReferralRegistry Proxy:", address(proxy)); - // Initialize - ReferralRegistry(payable(address(proxy))).initialize(accessControlManager, feeSetup, feeRecipient); + /* -*/ string memory key = "avant-referral"; ReferralRegistry(payable(0x3FB2121208b40c7878089A78cc58f9b4D9D8b9F4)).addReferralKey( @@ -42,6 +48,7 @@ contract DeployReferralRegistry is BaseScript { false, address(0) ); + */ vm.stopBroadcast(); } diff --git a/slither.config.json b/slither.config.json deleted file mode 100644 index a9137439..00000000 --- a/slither.config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "detectors_to_exclude": "naming-convention,solc-version,timestamp", - "filter_paths": "lib", - "solc_remaps": ["ds-test/=lib/ds-test/src/", "forge-std/=lib/forge-std/src/"] -} diff --git a/slither.db.json b/slither.db.json deleted file mode 100644 index d474e0b7..00000000 --- a/slither.db.json +++ /dev/null @@ -1 +0,0 @@ -[{"elements": [{"type": "function", "name": "_functionDelegateCall", "source_mapping": {"start": 7088, "length": 455, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_functionDelegateCall(address,bytes)"}}, {"type": "node", "name": "(success,returndata) = target.delegatecall(data)", "source_mapping": {"start": 7353, "length": 67, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [202], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "_functionDelegateCall", "source_mapping": {"start": 7088, "length": 455, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_functionDelegateCall(address,bytes)"}}}}], "description": "ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#198-204) uses delegatecall to a input-controlled function id\n\t- (success,returndata) = target.delegatecall(data) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#202)\n", "markdown": "[ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L198-L204) uses delegatecall to a input-controlled function id\n\t- [(success,returndata) = target.delegatecall(data)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L202)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L198-L204", "id": "48abe2fb52a4a8d7287b3a437419201b33cb014093a0b3cbe43174e1909fafba", "check": "controlled-delegatecall", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "inverse = (3 * denominator) ^ 2", "source_mapping": {"start": 4459, "length": 39, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [117], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#117)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - [inverse = (3 * denominator) ^ 2](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L117)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "72eefa5f2b8b694943062c93e9599a2c91160a016e53a7fa2b9d05ee9a5e78f2", "check": "incorrect-exp", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "inverse = (3 * denominator) ^ 2", "source_mapping": {"start": 4448, "length": 39, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [117], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#117)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) has bitwise-xor operator ^ instead of the exponentiation operator **: \n\t - [inverse = (3 * denominator) ^ 2](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L117)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "2c64fddcadb1c5416b24cd9b1c5c1e89b482db1acabd371a0ec1e2093b49a9c2", "check": "incorrect-exp", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "admin", "source_mapping": {"start": 2896, "length": 96, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "admin()"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.admin() (contracts/external/TransparentUpgradeableProxy.sol#63-65) calls TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) which halt the execution return(uint256,uint256)(0,returndatasize()()) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.admin()](contracts/external/TransparentUpgradeableProxy.sol#L63-L65) calls [TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) which halt the execution [return(uint256,uint256)(0,returndatasize()())](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L63-L65", "id": "09c772cc8e00c9caf398cb6297476ddeae638be886b3858421b30af5a7f842a6", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "implementation", "source_mapping": {"start": 3452, "length": 129, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [76, 77, 78], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "implementation()"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.implementation() (contracts/external/TransparentUpgradeableProxy.sol#76-78) calls TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) which halt the execution return(uint256,uint256)(0,returndatasize()()) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.implementation()](contracts/external/TransparentUpgradeableProxy.sol#L76-L78) calls [TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) which halt the execution [return(uint256,uint256)(0,returndatasize()())](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L76-L78", "id": "dbb44803724949044f68a57c578bc46b16591da24f7464a3adb4adf4fed00370", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "changeAdmin", "source_mapping": {"start": 3786, "length": 103, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "changeAdmin(address)"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.changeAdmin(address) (contracts/external/TransparentUpgradeableProxy.sol#87-89) calls TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) which halt the execution return(uint256,uint256)(0,returndatasize()()) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.changeAdmin(address)](contracts/external/TransparentUpgradeableProxy.sol#L87-L89) calls [TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) which halt the execution [return(uint256,uint256)(0,returndatasize()())](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L87-L89", "id": "2b6ceb29cff975024849b3d5d937e7659c4ae61516385072ac853120e375e7f7", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "upgradeTo", "source_mapping": {"start": 4049, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [96, 97, 98], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "upgradeTo(address)"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.upgradeTo(address) (contracts/external/TransparentUpgradeableProxy.sol#96-98) calls TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) which halt the execution return(uint256,uint256)(0,returndatasize()()) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.upgradeTo(address)](contracts/external/TransparentUpgradeableProxy.sol#L96-L98) calls [TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) which halt the execution [return(uint256,uint256)(0,returndatasize()())](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L96-L98", "id": "2a4f8f88d8d9451fb0300c0b4370dcd2dbf01b45b4a6bcfc68699c8781333742", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "upgradeToAndCall", "source_mapping": {"start": 4559, "length": 164, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [107, 108, 109], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "upgradeToAndCall(address,bytes)"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (contracts/external/TransparentUpgradeableProxy.sol#107-109) calls TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) which halt the execution return(uint256,uint256)(0,returndatasize()()) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.upgradeToAndCall(address,bytes)](contracts/external/TransparentUpgradeableProxy.sol#L107-L109) calls [TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) which halt the execution [return(uint256,uint256)(0,returndatasize()())](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L107-L109", "id": "444f1e0a71d37a123e931206120d548e7c96fc4c293f5bfb3813acbeb920c08b", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "function", "name": "_fallback", "source_mapping": {"start": 2322, "length": 110, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [58, 59, 60, 61], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_fallback()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) calls Proxy._fallback() (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#58-61) which halt the execution return(uint256,uint256)(0,returndatasize()()) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) calls [Proxy._fallback()](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L58-L61) which halt the execution [return(uint256,uint256)(0,returndatasize()())](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L33-L39", "id": "9d3f835e37d9d6c73e23f1cf13684d3ed57e25c302dc24a824aa397deedc1aac", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "reverts", "source_mapping": {"start": 640, "length": 19, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [20], "starting_column": 5, "ending_column": 24}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}}}, {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}, {"type": "function", "name": "swapOut", "source_mapping": {"start": 2415, "length": 360, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapOut(address,uint256,address)"}}], "description": "MockTokenPermit.reverts (contracts/mock/MockTokenPermit.sol#20) is never initialized. It is used in:\n\t- MockTokenPermit.swapIn(address,uint256,address) (contracts/mock/MockTokenPermit.sol#77-89)\n\t- MockTokenPermit.swapOut(address,uint256,address) (contracts/mock/MockTokenPermit.sol#91-102)\n", "markdown": "[MockTokenPermit.reverts](contracts/mock/MockTokenPermit.sol#L20) is never initialized. It is used in:\n\t- [MockTokenPermit.swapIn(address,uint256,address)](contracts/mock/MockTokenPermit.sol#L77-L89)\n\t- [MockTokenPermit.swapOut(address,uint256,address)](contracts/mock/MockTokenPermit.sol#L91-L102)\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L20", "id": "085ae729708408a5001a72d3de5f3fd4414846239ecf04dc6812ad0d3d169596", "check": "uninitialized-state", "impact": "High", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getRoundedEpoch", "source_mapping": {"start": 33584, "length": 136, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [656, 657, 658], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getRoundedEpoch(uint32)"}}, {"type": "node", "name": "(epoch / EPOCH_DURATION) * EPOCH_DURATION", "source_mapping": {"start": 33665, "length": 48, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [657], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "_getRoundedEpoch", "source_mapping": {"start": 33584, "length": 136, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [656, 657, 658], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getRoundedEpoch(uint32)"}}}}], "description": "DistributionCreator._getRoundedEpoch(uint32) (contracts/DistributionCreator.sol#656-658) performs a multiplication on the result of a division:\n\t- (epoch / EPOCH_DURATION) * EPOCH_DURATION (contracts/DistributionCreator.sol#657)\n", "markdown": "[DistributionCreator._getRoundedEpoch(uint32)](contracts/DistributionCreator.sol#L656-L658) performs a multiplication on the result of a division:\n\t- [(epoch / EPOCH_DURATION) * EPOCH_DURATION](contracts/DistributionCreator.sol#L657)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L656-L658", "id": "cbd85eb11b318d3ce0d4756418406f2bae8daac4f0a0286c86d8d38b7cff8335", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_revokeTree", "source_mapping": {"start": 15362, "length": 345, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}, {"type": "node", "name": "TreeUpdated(_tree.merkleRoot,_tree.ipfsHash,(uint48(block.timestamp) / _EPOCH_DURATION) * (_EPOCH_DURATION))", "source_mapping": {"start": 15526, "length": 174, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [314, 315, 316, 317, 318], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 15362, "length": 345, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}}], "description": "Distributor._revokeTree() (contracts/Distributor.sol#309-319) performs a multiplication on the result of a division:\n\t- TreeUpdated(_tree.merkleRoot,_tree.ipfsHash,(uint48(block.timestamp) / _EPOCH_DURATION) * (_EPOCH_DURATION)) (contracts/Distributor.sol#314-318)\n", "markdown": "[Distributor._revokeTree()](contracts/Distributor.sol#L309-L319) performs a multiplication on the result of a division:\n\t- [TreeUpdated(_tree.merkleRoot,_tree.ipfsHash,(uint48(block.timestamp) / _EPOCH_DURATION) * (_EPOCH_DURATION))](contracts/Distributor.sol#L314-L318)\n", "first_markdown_element": "contracts/Distributor.sol#L309-L319", "id": "67bd56fcc9a55947ad392c1226e08c6bd2472cad8d4092d3f04f9d00e69bd9cb", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getRoundedEpoch", "source_mapping": {"start": 23739, "length": 136, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [451, 452, 453], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getRoundedEpoch(uint32)"}}, {"type": "node", "name": "(epoch / EPOCH_DURATION) * EPOCH_DURATION", "source_mapping": {"start": 23820, "length": 48, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [452], "starting_column": 9, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "_getRoundedEpoch", "source_mapping": {"start": 23739, "length": 136, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [451, 452, 453], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getRoundedEpoch(uint32)"}}}}], "description": "OldDistributionCreator._getRoundedEpoch(uint32) (contracts/deprecated/OldDistributionCreator.sol#451-453) performs a multiplication on the result of a division:\n\t- (epoch / EPOCH_DURATION) * EPOCH_DURATION (contracts/deprecated/OldDistributionCreator.sol#452)\n", "markdown": "[OldDistributionCreator._getRoundedEpoch(uint32)](contracts/deprecated/OldDistributionCreator.sol#L451-L453) performs a multiplication on the result of a division:\n\t- [(epoch / EPOCH_DURATION) * EPOCH_DURATION](contracts/deprecated/OldDistributionCreator.sol#L452)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L451-L453", "id": "4e8a9f90a2ef6941ae4a6caf372a7134dcf7c37ee8d244e936623653876d8133", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "lastTimeGaugePaid[gaugeAddr] = (block.timestamp / WEEK) * WEEK", "source_mapping": {"start": 8658, "length": 62, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [176], "starting_column": 9, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) performs a multiplication on the result of a division:\n\t- lastTimeGaugePaid[gaugeAddr] = (block.timestamp / WEEK) * WEEK (contracts/mock/AngleDistributor.sol#176)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) performs a multiplication on the result of a division:\n\t- [lastTimeGaugePaid[gaugeAddr] = (block.timestamp / WEEK) * WEEK](contracts/mock/AngleDistributor.sol#L176)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "d02d0e138ee104325f1d6f572023898e390f05b01cc96029fcec322f693953fb", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateMiningParameters", "source_mapping": {"start": 11144, "length": 933, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_updateMiningParameters()"}}, {"type": "node", "name": "epochDelta = (block.timestamp - startEpochTime) / RATE_REDUCTION_TIME", "source_mapping": {"start": 11318, "length": 77, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [228], "starting_column": 9, "ending_column": 86}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateMiningParameters", "source_mapping": {"start": 11144, "length": 933, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_updateMiningParameters()"}}}}, {"type": "node", "name": "startEpochTime += RATE_REDUCTION_TIME * epochDelta", "source_mapping": {"start": 11574, "length": 50, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [234], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateMiningParameters", "source_mapping": {"start": 11144, "length": 933, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_updateMiningParameters()"}}}}], "description": "AngleDistributor._updateMiningParameters() (contracts/mock/AngleDistributor.sol#226-245) performs a multiplication on the result of a division:\n\t- epochDelta = (block.timestamp - startEpochTime) / RATE_REDUCTION_TIME (contracts/mock/AngleDistributor.sol#228)\n\t- startEpochTime += RATE_REDUCTION_TIME * epochDelta (contracts/mock/AngleDistributor.sol#234)\n", "markdown": "[AngleDistributor._updateMiningParameters()](contracts/mock/AngleDistributor.sol#L226-L245) performs a multiplication on the result of a division:\n\t- [epochDelta = (block.timestamp - startEpochTime) / RATE_REDUCTION_TIME](contracts/mock/AngleDistributor.sol#L228)\n\t- [startEpochTime += RATE_REDUCTION_TIME * epochDelta](contracts/mock/AngleDistributor.sol#L234)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L226-L245", "id": "857b705ece18daf56a5f23d11d4066bca8d747c244690bd2025fec681804a910", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "round", "source_mapping": {"start": 359, "length": 129, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockUniswapV3Pool", "source_mapping": {"start": 62, "length": 428, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "round(uint256)"}}, {"type": "node", "name": "(amount / EPOCH_DURATION) * EPOCH_DURATION", "source_mapping": {"start": 432, "length": 49, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [17], "starting_column": 9, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "round", "source_mapping": {"start": 359, "length": 129, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockUniswapV3Pool", "source_mapping": {"start": 62, "length": 428, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "round(uint256)"}}}}], "description": "MockUniswapV3Pool.round(uint256) (contracts/mock/MockUniswapV3Pool.sol#16-18) performs a multiplication on the result of a division:\n\t- (amount / EPOCH_DURATION) * EPOCH_DURATION (contracts/mock/MockUniswapV3Pool.sol#17)\n", "markdown": "[MockUniswapV3Pool.round(uint256)](contracts/mock/MockUniswapV3Pool.sol#L16-L18) performs a multiplication on the result of a division:\n\t- [(amount / EPOCH_DURATION) * EPOCH_DURATION](contracts/mock/MockUniswapV3Pool.sol#L17)\n", "first_markdown_element": "contracts/mock/MockUniswapV3Pool.sol#L16-L18", "id": "b12220746a2de35aab284fe4b3458c39d81d12343e189c27f27ff7efa8998a27", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse = (3 * denominator) ^ 2", "source_mapping": {"start": 4459, "length": 39, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [117], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#117)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse = (3 * denominator) ^ 2](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L117)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "36498e87f05a9523c2fa13b13082af267787f571be8f46cc89057cfb6763e3a7", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4715, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [121], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#121)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L121)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "01151cd76a1e81792bcb8f41a5c08bd0b69e0364229d51e56667879c75a5ef3c", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4784, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [122], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#122)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L122)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "6adde9ff6045d8893e29e1c4e89418aa232a1006452c260521748a72447fe5df", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4854, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [123], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#123)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L123)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "aa12c8717f22e85afb6b540d550eb6feec999e0e909dfb8dd8df2340eda1095b", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4924, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [124], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#124)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L124)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "005925aa9c1b6428062b6a1072e9f43e00adf82752cd3e93fc8ddd566adefce7", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4994, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [125], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#125)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L125)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "c80a8d20b6ab8f8f731f03232854f3077584baf84d112d6c9984bd95236bff78", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3757, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 5065, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [126], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#126)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L126)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "e4c5ec2fd025a5574c5f8b87a508054766f613948b2d0521f59a8d06891d29ad", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "prod0 = prod0 / twos", "source_mapping": {"start": 3861, "length": 25, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [105], "starting_column": 17, "ending_column": 42}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "result = prod0 * inverse", "source_mapping": {"start": 5535, "length": 24, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [132], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) performs a multiplication on the result of a division:\n\t- prod0 = prod0 / twos (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#105)\n\t- result = prod0 * inverse (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#132)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [prod0 = prod0 / twos](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L105)\n\t- [result = prod0 * inverse](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L132)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "422d45c7a6cc2fbc1ee7e377582d1d41572c793106beafe9fa260aa61c70e668", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse = (3 * denominator) ^ 2", "source_mapping": {"start": 4448, "length": 39, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [117], "starting_column": 13, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse = (3 * denominator) ^ 2 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#117)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse = (3 * denominator) ^ 2](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L117)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "9366c7938fc4bb00df688c32c8ed19b203d0c51e9c3630746dff2cedcc98695d", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4704, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [121], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#121)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L121)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "7a9d790685a3ca1e9eed5ffd7c33ba869cdb408cc7af2705984ecd7e7cafbcd5", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4773, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [122], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#122)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L122)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "c7bc9ffc5c8dfddb6578b0e25bea32c3d2c99c65c9132e3191655fe05ba08d14", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4843, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [123], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#123)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L123)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "770f37701e7dbb8e76e4e679cb2345901fa29bea8c180a71edf3e1ad44f68bb0", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4913, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [124], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#124)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L124)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "4fab2c3fe59ec32842c09868f05a6d12e00eb310cc8e21a5d5cd23cdeb3a00a0", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 4983, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [125], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#125)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L125)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "ebe1a5bd6ce77581b7d7d2657d8ae324ef016f350d0633e4ec6100844dd49fb0", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "denominator = denominator / twos", "source_mapping": {"start": 3746, "length": 37, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [102], "starting_column": 17, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "inverse *= 2 - denominator * inverse", "source_mapping": {"start": 5054, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [126], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- denominator = denominator / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#102)\n\t- inverse *= 2 - denominator * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#126)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [denominator = denominator / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L102)\n\t- [inverse *= 2 - denominator * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L126)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "2fd55972c1863e114e3ecbb9ec20fff188f3b98eea3d906a742e97f1f2782a34", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "prod0 = prod0 / twos", "source_mapping": {"start": 3850, "length": 25, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [105], "starting_column": 17, "ending_column": 42}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "result = prod0 * inverse", "source_mapping": {"start": 5524, "length": 24, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [132], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) performs a multiplication on the result of a division:\n\t- prod0 = prod0 / twos (node_modules/@openzeppelin/contracts/utils/math/Math.sol#105)\n\t- result = prod0 * inverse (node_modules/@openzeppelin/contracts/utils/math/Math.sol#132)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) performs a multiplication on the result of a division:\n\t- [prod0 = prod0 / twos](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L105)\n\t- [result = prod0 * inverse](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L132)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "d1fca796c75270996865195a17ac315f14433ee40a40cbc621032d9e44307672", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount", "source_mapping": {"start": 12713, "length": 972, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 13, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}}], "description": "DistributionCreator._createDistribution(DistributionParameters) (contracts/DistributionCreator.sol#223-274) uses a dangerous strict equality:\n\t- epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount (contracts/DistributionCreator.sol#232-244)\n", "markdown": "[DistributionCreator._createDistribution(DistributionParameters)](contracts/DistributionCreator.sol#L223-L274) uses a dangerous strict equality:\n\t- [epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount](contracts/DistributionCreator.sol#L232-L244)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L223-L274", "id": "0e3e412908dbb4b844cce9c83c1c9dade7b33b5bb5120767e7f9a2d680be344d", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}, {"type": "node", "name": "length == returnSize", "source_mapping": {"start": 37996, "length": 20, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [749], "starting_column": 17, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}}}], "description": "DistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32) (contracts/DistributionCreator.sol#720-755) uses a dangerous strict equality:\n\t- length == returnSize (contracts/DistributionCreator.sol#749)\n", "markdown": "[DistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)](contracts/DistributionCreator.sol#L720-L755) uses a dangerous strict equality:\n\t- [length == returnSize](contracts/DistributionCreator.sol#L749)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L720-L755", "id": "e9a4ea53dcbc1ebeb483d28cae7a024a9985338a6468ca54bdc7343a76514511", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount", "source_mapping": {"start": 12153, "length": 972, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 13, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}}], "description": "OldDistributionCreator._createDistribution(DistributionParameters) (contracts/deprecated/OldDistributionCreator.sol#212-263) uses a dangerous strict equality:\n\t- epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount (contracts/deprecated/OldDistributionCreator.sol#221-233)\n", "markdown": "[OldDistributionCreator._createDistribution(DistributionParameters)](contracts/deprecated/OldDistributionCreator.sol#L212-L263) uses a dangerous strict equality:\n\t- [epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount](contracts/deprecated/OldDistributionCreator.sol#L221-L233)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L212-L263", "id": "8938a5d03b9e80ef9ca8dc229a51305931c92dbdcf4e954fddcbb448c7fb690b", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "lastTimePaid == 0", "source_mapping": {"start": 6582, "length": 17, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [137], "starting_column": 13, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) uses a dangerous strict equality:\n\t- lastTimePaid == 0 (contracts/mock/AngleDistributor.sol#137)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) uses a dangerous strict equality:\n\t- [lastTimePaid == 0](contracts/mock/AngleDistributor.sol#L137)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "7ec2a13cfd996af3fb5092c0cd0c45e247a0b4a6754ac276deb87c2508d2ef40", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "weeksElapsed == 0", "source_mapping": {"start": 7151, "length": 17, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [148], "starting_column": 17, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) uses a dangerous strict equality:\n\t- weeksElapsed == 0 (contracts/mock/AngleDistributor.sol#148)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) uses a dangerous strict equality:\n\t- [weeksElapsed == 0](contracts/mock/AngleDistributor.sol#L148)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "a65d80d5299bc26729606b98c6d10039f5da6f0d946a4eac693aa19b7f563db4", "check": "incorrect-equality", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "rewardToken.safeApprove(gaugeAddr,type()(uint256).max)", "source_mapping": {"start": 6833, "length": 53, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [142], "starting_column": 17, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "relWeightAtWeek = controller.gauge_relative_weight_write(gaugeAddr,block.timestamp)", "source_mapping": {"start": 7624, "length": 84, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [159], "starting_column": 17, "ending_column": 101}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "lastTimeGaugePaid[gaugeAddr] = (block.timestamp / WEEK) * WEEK", "source_mapping": {"start": 8658, "length": 62, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [176], "starting_column": 9, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "lastTimeGaugePaid"}}], "description": "Reentrancy in AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206):\n\tExternal calls:\n\t- rewardToken.safeApprove(gaugeAddr,type()(uint256).max) (contracts/mock/AngleDistributor.sol#142)\n\t- relWeightAtWeek = controller.gauge_relative_weight_write(gaugeAddr,block.timestamp) (contracts/mock/AngleDistributor.sol#159)\n\tState variables written after the call(s):\n\t- lastTimeGaugePaid[gaugeAddr] = (block.timestamp / WEEK) * WEEK (contracts/mock/AngleDistributor.sol#176)\n\tAngleDistributor.lastTimeGaugePaid (contracts/mock/AngleDistributor.sol#33) can be used in cross function reentrancies:\n\t- AngleDistributor.lastTimeGaugePaid (contracts/mock/AngleDistributor.sol#33)\n\t- AngleDistributor.toggleGauge(address) (contracts/mock/AngleDistributor.sol#394-402)\n", "markdown": "Reentrancy in [AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206):\n\tExternal calls:\n\t- [rewardToken.safeApprove(gaugeAddr,type()(uint256).max)](contracts/mock/AngleDistributor.sol#L142)\n\t- [relWeightAtWeek = controller.gauge_relative_weight_write(gaugeAddr,block.timestamp)](contracts/mock/AngleDistributor.sol#L159)\n\tState variables written after the call(s):\n\t- [lastTimeGaugePaid[gaugeAddr] = (block.timestamp / WEEK) * WEEK](contracts/mock/AngleDistributor.sol#L176)\n\t[AngleDistributor.lastTimeGaugePaid](contracts/mock/AngleDistributor.sol#L33) can be used in cross function reentrancies:\n\t- [AngleDistributor.lastTimeGaugePaid](contracts/mock/AngleDistributor.sol#L33)\n\t- [AngleDistributor.toggleGauge(address)](contracts/mock/AngleDistributor.sol#L394-L402)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "8922a3bf68b69c311be0145e49a0eafefe5951d34fe0e63e0f811cec360e018d", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 8838, "length": 1350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}, {"type": "node", "name": "IERC20(token).safeTransfer(user,toSend)", "source_mapping": {"start": 10025, "length": 40, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [191], "starting_column": 13, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8838, "length": 1350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "claimed[user][token] = Claim(SafeCast.toUint208(amount),uint48(block.timestamp),getMerkleRoot())", "source_mapping": {"start": 9912, "length": 98, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [189], "starting_column": 13, "ending_column": 111}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8838, "length": 1350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "claimed"}}], "description": "Reentrancy in Distributor.claim(address[],address[],uint256[],bytes32[][]) (contracts/Distributor.sol#161-197):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(user,toSend) (contracts/Distributor.sol#191)\n\tState variables written after the call(s):\n\t- claimed[user][token] = Claim(SafeCast.toUint208(amount),uint48(block.timestamp),getMerkleRoot()) (contracts/Distributor.sol#189)\n\tDistributor.claimed (contracts/Distributor.sol#97) can be used in cross function reentrancies:\n\t- Distributor.claim(address[],address[],uint256[],bytes32[][]) (contracts/Distributor.sol#161-197)\n\t- Distributor.claimed (contracts/Distributor.sol#97)\n", "markdown": "Reentrancy in [Distributor.claim(address[],address[],uint256[],bytes32[][])](contracts/Distributor.sol#L161-L197):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(user,toSend)](contracts/Distributor.sol#L191)\n\tState variables written after the call(s):\n\t- [claimed[user][token] = Claim(SafeCast.toUint208(amount),uint48(block.timestamp),getMerkleRoot())](contracts/Distributor.sol#L189)\n\t[Distributor.claimed](contracts/Distributor.sol#L97) can be used in cross function reentrancies:\n\t- [Distributor.claim(address[],address[],uint256[],bytes32[][])](contracts/Distributor.sol#L161-L197)\n\t- [Distributor.claimed](contracts/Distributor.sol#L97)\n", "first_markdown_element": "contracts/Distributor.sol#L161-L197", "id": "f381a4570ce2d6108ad88682276e213452b6b7914972243ff47697e5758f54e7", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 8483, "length": 1333, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}, {"type": "node", "name": "IERC20(token).safeTransfer(user,toSend)", "source_mapping": {"start": 9653, "length": 40, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [186], "starting_column": 13, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8483, "length": 1333, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "claimed[user][token] = Claim(SafeCast.toUint208(amount),uint48(block.timestamp))", "source_mapping": {"start": 9557, "length": 81, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [184], "starting_column": 13, "ending_column": 94}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8483, "length": 1333, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "claimed"}}], "description": "Reentrancy in OldDistributor.claim(address[],address[],uint256[],bytes32[][]) (contracts/deprecated/OldDistributor.sol#156-192):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(user,toSend) (contracts/deprecated/OldDistributor.sol#186)\n\tState variables written after the call(s):\n\t- claimed[user][token] = Claim(SafeCast.toUint208(amount),uint48(block.timestamp)) (contracts/deprecated/OldDistributor.sol#184)\n\tOldDistributor.claimed (contracts/deprecated/OldDistributor.sol#93) can be used in cross function reentrancies:\n\t- OldDistributor.claim(address[],address[],uint256[],bytes32[][]) (contracts/deprecated/OldDistributor.sol#156-192)\n\t- OldDistributor.claimed (contracts/deprecated/OldDistributor.sol#93)\n", "markdown": "Reentrancy in [OldDistributor.claim(address[],address[],uint256[],bytes32[][])](contracts/deprecated/OldDistributor.sol#L156-L192):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(user,toSend)](contracts/deprecated/OldDistributor.sol#L186)\n\tState variables written after the call(s):\n\t- [claimed[user][token] = Claim(SafeCast.toUint208(amount),uint48(block.timestamp))](contracts/deprecated/OldDistributor.sol#L184)\n\t[OldDistributor.claimed](contracts/deprecated/OldDistributor.sol#L93) can be used in cross function reentrancies:\n\t- [OldDistributor.claim(address[],address[],uint256[],bytes32[][])](contracts/deprecated/OldDistributor.sol#L156-L192)\n\t- [OldDistributor.claimed](contracts/deprecated/OldDistributor.sol#L93)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L156-L192", "id": "0c115c2fcdfaa1c2e5aa2ffbf0c0b1c7ba1fac12f08ed72ca36c2019f8f9ce77", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)", "source_mapping": {"start": 12190, "length": 79, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [238], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "disputer = msg.sender", "source_mapping": {"start": 12279, "length": 21, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [239], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "disputer"}}], "description": "Reentrancy in Distributor.disputeTree(string) (contracts/Distributor.sol#235-241):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount) (contracts/Distributor.sol#238)\n\tState variables written after the call(s):\n\t- disputer = msg.sender (contracts/Distributor.sol#239)\n\tDistributor.disputer (contracts/Distributor.sol#85) can be used in cross function reentrancies:\n\t- Distributor.disputeTree(string) (contracts/Distributor.sol#235-241)\n\t- Distributor.disputer (contracts/Distributor.sol#85)\n\t- Distributor.getMerkleRoot() (contracts/Distributor.sol#200-203)\n\t- Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257)\n\t- Distributor.revokeTree() (contracts/Distributor.sol#261-264)\n\t- Distributor.setDisputeAmount(uint256) (contracts/Distributor.sol#300-304)\n\t- Distributor.setDisputeToken(IERC20) (contracts/Distributor.sol#293-297)\n\t- Distributor.updateTree(MerkleTree) (contracts/Distributor.sol#215-230)\n", "markdown": "Reentrancy in [Distributor.disputeTree(string)](contracts/Distributor.sol#L235-L241):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)](contracts/Distributor.sol#L238)\n\tState variables written after the call(s):\n\t- [disputer = msg.sender](contracts/Distributor.sol#L239)\n\t[Distributor.disputer](contracts/Distributor.sol#L85) can be used in cross function reentrancies:\n\t- [Distributor.disputeTree(string)](contracts/Distributor.sol#L235-L241)\n\t- [Distributor.disputer](contracts/Distributor.sol#L85)\n\t- [Distributor.getMerkleRoot()](contracts/Distributor.sol#L200-L203)\n\t- [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257)\n\t- [Distributor.revokeTree()](contracts/Distributor.sol#L261-L264)\n\t- [Distributor.setDisputeAmount(uint256)](contracts/Distributor.sol#L300-L304)\n\t- [Distributor.setDisputeToken(IERC20)](contracts/Distributor.sol#L293-L297)\n\t- [Distributor.updateTree(MerkleTree)](contracts/Distributor.sol#L215-L230)\n", "first_markdown_element": "contracts/Distributor.sol#L235-L241", "id": "a5432e0d91eb0379ac8a24066cf1bbc86167b445e9cc9315f4cc8fc8e197b53d", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12606, "length": 58, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12818, "length": 60, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [252], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "disputer = address(0)", "source_mapping": {"start": 12977, "length": 21, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [255], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "disputer"}}], "description": "Reentrancy in Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/Distributor.sol#248)\n\t- IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount) (contracts/Distributor.sol#252)\n\tState variables written after the call(s):\n\t- disputer = address(0) (contracts/Distributor.sol#255)\n\tDistributor.disputer (contracts/Distributor.sol#85) can be used in cross function reentrancies:\n\t- Distributor.disputeTree(string) (contracts/Distributor.sol#235-241)\n\t- Distributor.disputer (contracts/Distributor.sol#85)\n\t- Distributor.getMerkleRoot() (contracts/Distributor.sol#200-203)\n\t- Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257)\n\t- Distributor.revokeTree() (contracts/Distributor.sol#261-264)\n\t- Distributor.setDisputeAmount(uint256) (contracts/Distributor.sol#300-304)\n\t- Distributor.setDisputeToken(IERC20) (contracts/Distributor.sol#293-297)\n\t- Distributor.updateTree(MerkleTree) (contracts/Distributor.sol#215-230)\n", "markdown": "Reentrancy in [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/Distributor.sol#L248)\n\t- [IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)](contracts/Distributor.sol#L252)\n\tState variables written after the call(s):\n\t- [disputer = address(0)](contracts/Distributor.sol#L255)\n\t[Distributor.disputer](contracts/Distributor.sol#L85) can be used in cross function reentrancies:\n\t- [Distributor.disputeTree(string)](contracts/Distributor.sol#L235-L241)\n\t- [Distributor.disputer](contracts/Distributor.sol#L85)\n\t- [Distributor.getMerkleRoot()](contracts/Distributor.sol#L200-L203)\n\t- [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257)\n\t- [Distributor.revokeTree()](contracts/Distributor.sol#L261-L264)\n\t- [Distributor.setDisputeAmount(uint256)](contracts/Distributor.sol#L300-L304)\n\t- [Distributor.setDisputeToken(IERC20)](contracts/Distributor.sol#L293-L297)\n\t- [Distributor.updateTree(MerkleTree)](contracts/Distributor.sol#L215-L230)\n", "first_markdown_element": "contracts/Distributor.sol#L245-L257", "id": "0d7ce7b0cea622067063506fde457bb6e89dc5139a446ea7f008241fd240d066", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12093, "length": 58, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [240], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12305, "length": 60, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [244], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "disputer = address(0)", "source_mapping": {"start": 12439, "length": 21, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [247], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "disputer"}}], "description": "Reentrancy in OldDistributor.resolveDispute(bool) (contracts/deprecated/OldDistributor.sol#237-249):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/deprecated/OldDistributor.sol#240)\n\t- IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount) (contracts/deprecated/OldDistributor.sol#244)\n\tState variables written after the call(s):\n\t- disputer = address(0) (contracts/deprecated/OldDistributor.sol#247)\n\tOldDistributor.disputer (contracts/deprecated/OldDistributor.sol#81) can be used in cross function reentrancies:\n\t- OldDistributor.disputeTree(string) (contracts/deprecated/OldDistributor.sol#228-233)\n\t- OldDistributor.disputer (contracts/deprecated/OldDistributor.sol#81)\n\t- OldDistributor.resolveDispute(bool) (contracts/deprecated/OldDistributor.sol#237-249)\n\t- OldDistributor.revokeTree() (contracts/deprecated/OldDistributor.sol#253-256)\n\t- OldDistributor.setDisputeAmount(uint256) (contracts/deprecated/OldDistributor.sol#293-297)\n\t- OldDistributor.setDisputeToken(IERC20) (contracts/deprecated/OldDistributor.sol#286-290)\n\t- OldDistributor.updateTree(MerkleTree) (contracts/deprecated/OldDistributor.sol#210-223)\n", "markdown": "Reentrancy in [OldDistributor.resolveDispute(bool)](contracts/deprecated/OldDistributor.sol#L237-L249):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/deprecated/OldDistributor.sol#L240)\n\t- [IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)](contracts/deprecated/OldDistributor.sol#L244)\n\tState variables written after the call(s):\n\t- [disputer = address(0)](contracts/deprecated/OldDistributor.sol#L247)\n\t[OldDistributor.disputer](contracts/deprecated/OldDistributor.sol#L81) can be used in cross function reentrancies:\n\t- [OldDistributor.disputeTree(string)](contracts/deprecated/OldDistributor.sol#L228-L233)\n\t- [OldDistributor.disputer](contracts/deprecated/OldDistributor.sol#L81)\n\t- [OldDistributor.resolveDispute(bool)](contracts/deprecated/OldDistributor.sol#L237-L249)\n\t- [OldDistributor.revokeTree()](contracts/deprecated/OldDistributor.sol#L253-L256)\n\t- [OldDistributor.setDisputeAmount(uint256)](contracts/deprecated/OldDistributor.sol#L293-L297)\n\t- [OldDistributor.setDisputeToken(IERC20)](contracts/deprecated/OldDistributor.sol#L286-L290)\n\t- [OldDistributor.updateTree(MerkleTree)](contracts/deprecated/OldDistributor.sol#L210-L223)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L237-L249", "id": "c2b8b6603991b183e777e8b4422fe7032c8828248b2285bbc6d8933c685a7f31", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toggleGauge", "source_mapping": {"start": 20263, "length": 382, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleGauge(address)"}}, {"type": "node", "name": "rewardToken.safeApprove(gaugeAddr,0)", "source_mapping": {"start": 20485, "length": 37, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [398], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "toggleGauge", "source_mapping": {"start": 20263, "length": 382, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleGauge(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "killedGauges[gaugeAddr] = ! gaugeKilledMem", "source_mapping": {"start": 20542, "length": 41, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [400], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "toggleGauge", "source_mapping": {"start": 20263, "length": 382, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleGauge(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "killedGauges"}}], "description": "Reentrancy in AngleDistributor.toggleGauge(address) (contracts/mock/AngleDistributor.sol#394-402):\n\tExternal calls:\n\t- rewardToken.safeApprove(gaugeAddr,0) (contracts/mock/AngleDistributor.sol#398)\n\tState variables written after the call(s):\n\t- killedGauges[gaugeAddr] = ! gaugeKilledMem (contracts/mock/AngleDistributor.sol#400)\n\tAngleDistributor.killedGauges (contracts/mock/AngleDistributor.sol#37) can be used in cross function reentrancies:\n\t- AngleDistributor.killedGauges (contracts/mock/AngleDistributor.sol#37)\n\t- AngleDistributor.toggleGauge(address) (contracts/mock/AngleDistributor.sol#394-402)\n", "markdown": "Reentrancy in [AngleDistributor.toggleGauge(address)](contracts/mock/AngleDistributor.sol#L394-L402):\n\tExternal calls:\n\t- [rewardToken.safeApprove(gaugeAddr,0)](contracts/mock/AngleDistributor.sol#L398)\n\tState variables written after the call(s):\n\t- [killedGauges[gaugeAddr] = ! gaugeKilledMem](contracts/mock/AngleDistributor.sol#L400)\n\t[AngleDistributor.killedGauges](contracts/mock/AngleDistributor.sol#L37) can be used in cross function reentrancies:\n\t- [AngleDistributor.killedGauges](contracts/mock/AngleDistributor.sol#L37)\n\t- [AngleDistributor.toggleGauge(address)](contracts/mock/AngleDistributor.sol#L394-L402)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L394-L402", "id": "feb944945655fc57efdbaba3f5a0374733d42de4165550e963b03b4c1ba9b3d6", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getExtensiveDistributionParameters", "source_mapping": {"start": 24874, "length": 1331, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getExtensiveDistributionParameters(DistributionParameters)"}}, {"type": "node", "name": "(fee_scope_0) = IAlgebraPool(distribution.uniV3Pool).globalState()", "source_mapping": {"start": 25256, "length": 383, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_getExtensiveDistributionParameters", "source_mapping": {"start": 24874, "length": 1331, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getExtensiveDistributionParameters(DistributionParameters)"}}}}], "description": "OldDistributionCreator._getExtensiveDistributionParameters(DistributionParameters) (contracts/deprecated/OldDistributionCreator.sol#478-509) ignores return value by (fee_scope_0) = IAlgebraPool(distribution.uniV3Pool).globalState() (contracts/deprecated/OldDistributionCreator.sol#485-497)\n", "markdown": "[OldDistributionCreator._getExtensiveDistributionParameters(DistributionParameters)](contracts/deprecated/OldDistributionCreator.sol#L478-L509) ignores return value by [(fee_scope_0) = IAlgebraPool(distribution.uniV3Pool).globalState()](contracts/deprecated/OldDistributionCreator.sol#L485-L497)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L478-L509", "id": "da2746d9775bcde4c9d886658576bff5af5426a9412e02cf824a396a7b9af0a9", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeToAndCall", "source_mapping": {"start": 2183, "length": 295, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeToAndCall(address,bytes,bool)"}}, {"type": "node", "name": "Address.functionDelegateCall(newImplementation,data)", "source_mapping": {"start": 2408, "length": 53, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [72], "starting_column": 13, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "function", "name": "_upgradeToAndCall", "source_mapping": {"start": 2183, "length": 295, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [65, 66, 67, 68, 69, 70, 71, 72, 73, 74], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeToAndCall(address,bytes,bool)"}}}}], "description": "ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#65-74) ignores return value by Address.functionDelegateCall(newImplementation,data) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#72)\n", "markdown": "[ERC1967Upgrade._upgradeToAndCall(address,bytes,bool)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L65-L74) ignores return value by [Address.functionDelegateCall(newImplementation,data)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L72)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L65-L74", "id": "99d246e27aec9e466f023be3dd0ea624a52042e4a7619121823bcc4e6978b589", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeBeaconToAndCall", "source_mapping": {"start": 6168, "length": 343, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeBeaconToAndCall(address,bytes,bool)"}}, {"type": "node", "name": "Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data)", "source_mapping": {"start": 6423, "length": 71, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [182], "starting_column": 13, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "_upgradeBeaconToAndCall", "source_mapping": {"start": 6168, "length": 343, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeBeaconToAndCall(address,bytes,bool)"}}}}], "description": "ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#174-184) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#182)\n", "markdown": "[ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L174-L184) ignores return value by [Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L182)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L174-L184", "id": "86dc5e184d8e993e3176bcd3a5710f9d6d42f77009746be97599761ec89aeac2", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "notifyReward", "source_mapping": {"start": 7299, "length": 846, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerklGaugeMiddleman", "source_mapping": {"start": 4267, "length": 4150, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "notifyReward(address,uint256)"}}, {"type": "node", "name": "merklDistributionCreator().createDistribution(params)", "source_mapping": {"start": 7913, "length": 53, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [125], "starting_column": 17, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "function", "name": "notifyReward", "source_mapping": {"start": 7299, "length": 846, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerklGaugeMiddleman", "source_mapping": {"start": 4267, "length": 4150, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "notifyReward(address,uint256)"}}}}], "description": "MerklGaugeMiddleman.notifyReward(address,uint256) (contracts/middleman/MerklGaugeMiddleman.sol#115-131) ignores return value by merklDistributionCreator().createDistribution(params) (contracts/middleman/MerklGaugeMiddleman.sol#125)\n", "markdown": "[MerklGaugeMiddleman.notifyReward(address,uint256)](contracts/middleman/MerklGaugeMiddleman.sol#L115-L131) ignores return value by [merklDistributionCreator().createDistribution(params)](contracts/middleman/MerklGaugeMiddleman.sol#L125)\n", "first_markdown_element": "contracts/middleman/MerklGaugeMiddleman.sol#L115-L131", "id": "8964bda90823a75d9be766525082f34f925e0df78cb7701c0c2c572acd649206", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "name", "source_mapping": {"start": 1841, "length": 18, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [44], "starting_column": 17, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 1829, "length": 52, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [44], "starting_column": 5, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Permit", "source_mapping": {"start": 865, "length": 2463, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(string)"}}}}, {"type": "function", "name": "name", "source_mapping": {"start": 2154, "length": 98, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [62, 63, 64], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20", "source_mapping": {"start": 1401, "length": 11610, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "name()"}}, {"type": "function", "name": "name", "source_mapping": {"start": 377, "length": 54, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": false, "lines": [17], "starting_column": 5, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "contract", "name": "IERC20Metadata", "source_mapping": {"start": 277, "length": 405, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "name()"}}], "description": "ERC20Permit.constructor(string).name (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#44) shadows:\n\t- ERC20.name() (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#62-64) (function)\n\t- IERC20Metadata.name() (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#17) (function)\n", "markdown": "[ERC20Permit.constructor(string).name](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L44) shadows:\n\t- [ERC20.name()](node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L62-L64) (function)\n\t- [IERC20Metadata.name()](node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#L17) (function)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L44", "id": "1f85c0fac855acf8d2d6992ee89e0b0ee24104b934a28808f04d68e95041b471", "check": "shadowing-local", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_feeRecipient", "source_mapping": {"start": 32498, "length": 21, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [633], "starting_column": 30, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "setFeeRecipient", "source_mapping": {"start": 32473, "length": 174, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [633, 634, 635, 636], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "setFeeRecipient(address)"}}}}, {"type": "node", "name": "feeRecipient = _feeRecipient", "source_mapping": {"start": 32563, "length": 28, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [634], "starting_column": 9, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "setFeeRecipient", "source_mapping": {"start": 32473, "length": 174, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [633, 634, 635, 636], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "setFeeRecipient(address)"}}}}], "description": "DistributionCreator.setFeeRecipient(address)._feeRecipient (contracts/DistributionCreator.sol#633) lacks a zero-check on :\n\t\t- feeRecipient = _feeRecipient (contracts/DistributionCreator.sol#634)\n", "markdown": "[DistributionCreator.setFeeRecipient(address)._feeRecipient](contracts/DistributionCreator.sol#L633) lacks a zero-check on :\n\t\t- [feeRecipient = _feeRecipient](contracts/DistributionCreator.sol#L634)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L633", "id": "b04d471b9eec04975cd08949cb479a93f5ebacc8984499eb40f0c43321472317", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_feeRecipient", "source_mapping": {"start": 22653, "length": 21, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [428], "starting_column": 30, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "setFeeRecipient", "source_mapping": {"start": 22628, "length": 174, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [428, 429, 430, 431], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "setFeeRecipient(address)"}}}}, {"type": "node", "name": "feeRecipient = _feeRecipient", "source_mapping": {"start": 22718, "length": 28, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [429], "starting_column": 9, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "setFeeRecipient", "source_mapping": {"start": 22628, "length": 174, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [428, 429, 430, 431], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "setFeeRecipient(address)"}}}}], "description": "OldDistributionCreator.setFeeRecipient(address)._feeRecipient (contracts/deprecated/OldDistributionCreator.sol#428) lacks a zero-check on :\n\t\t- feeRecipient = _feeRecipient (contracts/deprecated/OldDistributionCreator.sol#429)\n", "markdown": "[OldDistributionCreator.setFeeRecipient(address)._feeRecipient](contracts/deprecated/OldDistributionCreator.sol#L428) lacks a zero-check on :\n\t\t- [feeRecipient = _feeRecipient](contracts/deprecated/OldDistributionCreator.sol#L429)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L428", "id": "9c7483a7e200952f9fd6f012b13844ee222b7ce3cb35c6ca6fe2a66132bf5370", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 4275, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [92], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}}, {"type": "node", "name": "delegateGauge = _delegateGauge", "source_mapping": {"start": 4786, "length": 30, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [104], "starting_column": 9, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}}], "description": "AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._delegateGauge (contracts/mock/AngleDistributor.sol#92) lacks a zero-check on :\n\t\t- delegateGauge = _delegateGauge (contracts/mock/AngleDistributor.sol#104)\n", "markdown": "[AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._delegateGauge](contracts/mock/AngleDistributor.sol#L92) lacks a zero-check on :\n\t\t- [delegateGauge = _delegateGauge](contracts/mock/AngleDistributor.sol#L104)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L92", "id": "03a5d947848428ff6fcf57e176670b279ffec9b8bd1044040c9e881ed44a155e", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 17561, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [347], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "setDelegateGauge", "source_mapping": {"start": 17499, "length": 482, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "setDelegateGauge(address,address,bool)"}}}}, {"type": "node", "name": "delegateGauge = _delegateGauge", "source_mapping": {"start": 17779, "length": 30, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [353], "starting_column": 13, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "setDelegateGauge", "source_mapping": {"start": 17499, "length": 482, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "setDelegateGauge(address,address,bool)"}}}}], "description": "AngleDistributor.setDelegateGauge(address,address,bool)._delegateGauge (contracts/mock/AngleDistributor.sol#347) lacks a zero-check on :\n\t\t- delegateGauge = _delegateGauge (contracts/mock/AngleDistributor.sol#353)\n", "markdown": "[AngleDistributor.setDelegateGauge(address,address,bool)._delegateGauge](contracts/mock/AngleDistributor.sol#L347) lacks a zero-check on :\n\t\t- [delegateGauge = _delegateGauge](contracts/mock/AngleDistributor.sol#L353)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L347", "id": "34e75445b54b42e7eac1a1082a23a6e5c4ddbadfa664d3270354e9862ebc6b75", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_angleDistributorAddress", "source_mapping": {"start": 614, "length": 32, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [23], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "setAddresses", "source_mapping": {"start": 583, "length": 280, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockMerklGaugeMiddleman", "source_mapping": {"start": 111, "length": 754, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 1, "ending_column": 2}}, "signature": "setAddresses(address,IERC20,DistributionCreator)"}}}}, {"type": "node", "name": "angleDistributorAddress = _angleDistributorAddress", "source_mapping": {"start": 740, "length": 50, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [27], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "setAddresses", "source_mapping": {"start": 583, "length": 280, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockMerklGaugeMiddleman", "source_mapping": {"start": 111, "length": 754, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 1, "ending_column": 2}}, "signature": "setAddresses(address,IERC20,DistributionCreator)"}}}}], "description": "MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._angleDistributorAddress (contracts/mock/MockMerklGaugeMiddleman.sol#23) lacks a zero-check on :\n\t\t- angleDistributorAddress = _angleDistributorAddress (contracts/mock/MockMerklGaugeMiddleman.sol#27)\n", "markdown": "[MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._angleDistributorAddress](contracts/mock/MockMerklGaugeMiddleman.sol#L23) lacks a zero-check on :\n\t\t- [angleDistributorAddress = _angleDistributorAddress](contracts/mock/MockMerklGaugeMiddleman.sol#L27)\n", "first_markdown_element": "contracts/mock/MockMerklGaugeMiddleman.sol#L23", "id": "b39296473568926facdf442ae070e66c9f39b2e838f96860994789f740ec9472", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "token", "source_mapping": {"start": 209, "length": 13, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [10], "starting_column": 23, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "setToken", "source_mapping": {"start": 191, "length": 129, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [10, 11, 12, 13], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockPool", "source_mapping": {"start": 62, "length": 260, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "starting_column": 1, "ending_column": 2}}, "signature": "setToken(address,uint256)"}}}}, {"type": "node", "name": "token0 = token", "source_mapping": {"start": 270, "length": 14, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [11], "starting_column": 23, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "setToken", "source_mapping": {"start": 191, "length": 129, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [10, 11, 12, 13], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockPool", "source_mapping": {"start": 62, "length": 260, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "starting_column": 1, "ending_column": 2}}, "signature": "setToken(address,uint256)"}}}}, {"type": "node", "name": "token1 = token", "source_mapping": {"start": 299, "length": 14, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [12], "starting_column": 14, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "setToken", "source_mapping": {"start": 191, "length": 129, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [10, 11, 12, 13], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockPool", "source_mapping": {"start": 62, "length": 260, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "starting_column": 1, "ending_column": 2}}, "signature": "setToken(address,uint256)"}}}}], "description": "MockPool.setToken(address,uint256).token (contracts/mock/MockPool.sol#10) lacks a zero-check on :\n\t\t- token0 = token (contracts/mock/MockPool.sol#11)\n\t\t- token1 = token (contracts/mock/MockPool.sol#12)\n", "markdown": "[MockPool.setToken(address,uint256).token](contracts/mock/MockPool.sol#L10) lacks a zero-check on :\n\t\t- [token0 = token](contracts/mock/MockPool.sol#L11)\n\t\t- [token1 = token](contracts/mock/MockPool.sol#L12)\n", "first_markdown_element": "contracts/mock/MockPool.sol#L10", "id": "e9482042062d83a22df62c1f7f131853ab20296a81e74638417dcbd8c4f94e89", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_treasury", "source_mapping": {"start": 1456, "length": 17, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [55], "starting_column": 26, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "setTreasury", "source_mapping": {"start": 1435, "length": 84, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockToken", "source_mapping": {"start": 119, "length": 1402, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "starting_column": 1, "ending_column": 2}}, "signature": "setTreasury(address)"}}}}, {"type": "node", "name": "treasury = _treasury", "source_mapping": {"start": 1492, "length": 20, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [56], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "setTreasury", "source_mapping": {"start": 1435, "length": 84, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockToken", "source_mapping": {"start": 119, "length": 1402, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "starting_column": 1, "ending_column": 2}}, "signature": "setTreasury(address)"}}}}], "description": "MockToken.setTreasury(address)._treasury (contracts/mock/MockToken.sol#55) lacks a zero-check on :\n\t\t- treasury = _treasury (contracts/mock/MockToken.sol#56)\n", "markdown": "[MockToken.setTreasury(address)._treasury](contracts/mock/MockToken.sol#L55) lacks a zero-check on :\n\t\t- [treasury = _treasury](contracts/mock/MockToken.sol#L56)\n", "first_markdown_element": "contracts/mock/MockToken.sol#L55", "id": "f4c00dc33c4730b7dd7c5b5c4134ce4117efaaea2219ee768a2e24776e8bfdb0", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_treasury", "source_mapping": {"start": 1716, "length": 17, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [61], "starting_column": 26, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "setTreasury", "source_mapping": {"start": 1695, "length": 84, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [61, 62, 63], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "setTreasury(address)"}}}}, {"type": "node", "name": "treasury = _treasury", "source_mapping": {"start": 1752, "length": 20, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [62], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "setTreasury", "source_mapping": {"start": 1695, "length": 84, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [61, 62, 63], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "setTreasury(address)"}}}}], "description": "MockTokenPermit.setTreasury(address)._treasury (contracts/mock/MockTokenPermit.sol#61) lacks a zero-check on :\n\t\t- treasury = _treasury (contracts/mock/MockTokenPermit.sol#62)\n", "markdown": "[MockTokenPermit.setTreasury(address)._treasury](contracts/mock/MockTokenPermit.sol#L61) lacks a zero-check on :\n\t\t- [treasury = _treasury](contracts/mock/MockTokenPermit.sol#L62)\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L61", "id": "5ec7c93cbd33724d17fcb9673c5fc9524680095444a0c1f877549beec260e65b", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_stablecoin", "source_mapping": {"start": 306, "length": 19, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [14], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "node", "name": "stablecoin = _stablecoin", "source_mapping": {"start": 494, "length": 24, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [21], "starting_column": 9, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "MockTreasury.constructor(address,address,address,address,address,address)._stablecoin (contracts/mock/MockTreasury.sol#14) lacks a zero-check on :\n\t\t- stablecoin = _stablecoin (contracts/mock/MockTreasury.sol#21)\n", "markdown": "[MockTreasury.constructor(address,address,address,address,address,address)._stablecoin](contracts/mock/MockTreasury.sol#L14) lacks a zero-check on :\n\t\t- [stablecoin = _stablecoin](contracts/mock/MockTreasury.sol#L21)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L14", "id": "35eb9657c23cd4a938354b697888d9abaf6796bf71358ad225f20f0e09bf8497", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_governor", "source_mapping": {"start": 335, "length": 17, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [15], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "node", "name": "governor = _governor", "source_mapping": {"start": 528, "length": 20, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [22], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "MockTreasury.constructor(address,address,address,address,address,address)._governor (contracts/mock/MockTreasury.sol#15) lacks a zero-check on :\n\t\t- governor = _governor (contracts/mock/MockTreasury.sol#22)\n", "markdown": "[MockTreasury.constructor(address,address,address,address,address,address)._governor](contracts/mock/MockTreasury.sol#L15) lacks a zero-check on :\n\t\t- [governor = _governor](contracts/mock/MockTreasury.sol#L22)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L15", "id": "a8b02b714d60a6930f71f15ac45681e9556d957f76318545360631585c051518", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_guardian", "source_mapping": {"start": 362, "length": 17, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [16], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "node", "name": "guardian = _guardian", "source_mapping": {"start": 558, "length": 20, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [23], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "MockTreasury.constructor(address,address,address,address,address,address)._guardian (contracts/mock/MockTreasury.sol#16) lacks a zero-check on :\n\t\t- guardian = _guardian (contracts/mock/MockTreasury.sol#23)\n", "markdown": "[MockTreasury.constructor(address,address,address,address,address,address)._guardian](contracts/mock/MockTreasury.sol#L16) lacks a zero-check on :\n\t\t- [guardian = _guardian](contracts/mock/MockTreasury.sol#L23)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L16", "id": "b03a2ff4b01463fa25daebdb9452cb88b2b8d9237c1f774fe640ad857601f074", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_vaultManager1", "source_mapping": {"start": 389, "length": 22, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [17], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "node", "name": "vaultManager1 = _vaultManager1", "source_mapping": {"start": 588, "length": 30, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [24], "starting_column": 9, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "MockTreasury.constructor(address,address,address,address,address,address)._vaultManager1 (contracts/mock/MockTreasury.sol#17) lacks a zero-check on :\n\t\t- vaultManager1 = _vaultManager1 (contracts/mock/MockTreasury.sol#24)\n", "markdown": "[MockTreasury.constructor(address,address,address,address,address,address)._vaultManager1](contracts/mock/MockTreasury.sol#L17) lacks a zero-check on :\n\t\t- [vaultManager1 = _vaultManager1](contracts/mock/MockTreasury.sol#L24)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L17", "id": "b639b0c8bb2cbae2951f7cc853a0299fbe824da83aca4257ed9177a3374b5154", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_vaultManager2", "source_mapping": {"start": 421, "length": 22, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [18], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "node", "name": "vaultManager2 = _vaultManager2", "source_mapping": {"start": 628, "length": 30, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [25], "starting_column": 9, "ending_column": 39}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "MockTreasury.constructor(address,address,address,address,address,address)._vaultManager2 (contracts/mock/MockTreasury.sol#18) lacks a zero-check on :\n\t\t- vaultManager2 = _vaultManager2 (contracts/mock/MockTreasury.sol#25)\n", "markdown": "[MockTreasury.constructor(address,address,address,address,address,address)._vaultManager2](contracts/mock/MockTreasury.sol#L18) lacks a zero-check on :\n\t\t- [vaultManager2 = _vaultManager2](contracts/mock/MockTreasury.sol#L25)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L18", "id": "f8c41ae43746f08720bd09034813ab0525ebcd39107c4977f8ff2189e930e3b3", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_flashLoanModule", "source_mapping": {"start": 453, "length": 24, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [19], "starting_column": 9, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "node", "name": "flashLoanModule = _flashLoanModule", "source_mapping": {"start": 668, "length": 34, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [26], "starting_column": 9, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "MockTreasury.constructor(address,address,address,address,address,address)._flashLoanModule (contracts/mock/MockTreasury.sol#19) lacks a zero-check on :\n\t\t- flashLoanModule = _flashLoanModule (contracts/mock/MockTreasury.sol#26)\n", "markdown": "[MockTreasury.constructor(address,address,address,address,address,address)._flashLoanModule](contracts/mock/MockTreasury.sol#L19) lacks a zero-check on :\n\t\t- [flashLoanModule = _flashLoanModule](contracts/mock/MockTreasury.sol#L26)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L19", "id": "64b74f3a7594c1b3e66c968468a026d298cf9fc6731997d9e4a680a08c4b4704", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "token", "source_mapping": {"start": 242, "length": 13, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [11], "starting_column": 23, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "setToken", "source_mapping": {"start": 224, "length": 129, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [11, 12, 13, 14], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockUniswapV3Pool", "source_mapping": {"start": 62, "length": 428, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "setToken(address,uint256)"}}}}, {"type": "node", "name": "token0 = token", "source_mapping": {"start": 303, "length": 14, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [12], "starting_column": 23, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "setToken", "source_mapping": {"start": 224, "length": 129, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [11, 12, 13, 14], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockUniswapV3Pool", "source_mapping": {"start": 62, "length": 428, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "setToken(address,uint256)"}}}}, {"type": "node", "name": "token1 = token", "source_mapping": {"start": 332, "length": 14, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [13], "starting_column": 14, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "setToken", "source_mapping": {"start": 224, "length": 129, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [11, 12, 13, 14], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockUniswapV3Pool", "source_mapping": {"start": 62, "length": 428, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "setToken(address,uint256)"}}}}], "description": "MockUniswapV3Pool.setToken(address,uint256).token (contracts/mock/MockUniswapV3Pool.sol#11) lacks a zero-check on :\n\t\t- token0 = token (contracts/mock/MockUniswapV3Pool.sol#12)\n\t\t- token1 = token (contracts/mock/MockUniswapV3Pool.sol#13)\n", "markdown": "[MockUniswapV3Pool.setToken(address,uint256).token](contracts/mock/MockUniswapV3Pool.sol#L11) lacks a zero-check on :\n\t\t- [token0 = token](contracts/mock/MockUniswapV3Pool.sol#L12)\n\t\t- [token1 = token](contracts/mock/MockUniswapV3Pool.sol#L13)\n", "first_markdown_element": "contracts/mock/MockUniswapV3Pool.sol#L11", "id": "b9c803e8e6b9fbf0df785aab723fb68636121440896ca6442a9a555b921e54bd", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "ifAdmin", "source_mapping": {"start": 1845, "length": 134, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [33, 34, 35, 36, 37, 38, 39], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}], "description": "Modifier TransparentUpgradeableProxy.ifAdmin() (contracts/external/TransparentUpgradeableProxy.sol#33-39) does not always execute _; or revert", "markdown": "Modifier [TransparentUpgradeableProxy.ifAdmin()](contracts/external/TransparentUpgradeableProxy.sol#L33-L39) does not always execute _; or revert", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L33-L39", "id": "5530811b8f31a92cde9528b8c17ea217ddffa4a1218c85cf7cd615221ec4c0bd", "check": "incorrect-modifier", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "userFeeRebate < BASE_9 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token0()] == 0 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token1()] == 0", "source_mapping": {"start": 13966, "length": 276, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [250, 251, 252, 253], "starting_column": 13, "ending_column": 85}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}}], "description": "DistributionCreator._createDistribution(DistributionParameters) (contracts/DistributionCreator.sol#223-274) has external calls inside a loop: userFeeRebate < BASE_9 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token0()] == 0 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token1()] == 0 (contracts/DistributionCreator.sol#250-253)\n", "markdown": "[DistributionCreator._createDistribution(DistributionParameters)](contracts/DistributionCreator.sol#L223-L274) has external calls inside a loop: [userFeeRebate < BASE_9 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token0()] == 0 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token1()] == 0](contracts/DistributionCreator.sol#L250-L253)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L223-L274", "id": "dd6a1c9f46d9925480f76db9aab4a099f4b5a92cf7f792363b1c89afcd2ffbdb", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4960, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}, {"type": "node", "name": "(success,returndata) = target.call{value: value}(data)", "source_mapping": {"start": 5240, "length": 73, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [135], "starting_column": 9, "ending_column": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4960, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}}}], "description": "Address.functionCallWithValue(address,bytes,uint256,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#128-137) has external calls inside a loop: (success,returndata) = target.call{value: value}(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#135)\n", "markdown": "[Address.functionCallWithValue(address,bytes,uint256,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L128-L137) has external calls inside a loop: [(success,returndata) = target.call{value: value}(data)](node_modules/@openzeppelin/contracts/utils/Address.sol#L135)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L128-L137", "id": "f0f314b933e4a73ff24f7144e7b54a9a0b55c23c93620954cd7a041dfe729f8e", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "recoverFees", "source_mapping": {"start": 31202, "length": 335, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [605, 606, 607, 608, 609, 610, 611, 612, 613], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "recoverFees(IERC20[],address)"}}, {"type": "node", "name": "tokens[i].safeTransfer(to,tokens[i].balanceOf(address(this)))", "source_mapping": {"start": 31399, "length": 62, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [608], "starting_column": 13, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverFees", "source_mapping": {"start": 31202, "length": 335, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [605, 606, 607, 608, 609, 610, 611, 612, 613], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "recoverFees(IERC20[],address)"}}}}], "description": "DistributionCreator.recoverFees(IERC20[],address) (contracts/DistributionCreator.sol#605-613) has external calls inside a loop: tokens[i].safeTransfer(to,tokens[i].balanceOf(address(this))) (contracts/DistributionCreator.sol#608)\n", "markdown": "[DistributionCreator.recoverFees(IERC20[],address)](contracts/DistributionCreator.sol#L605-L613) has external calls inside a loop: [tokens[i].safeTransfer(to,tokens[i].balanceOf(address(this)))](contracts/DistributionCreator.sol#L608)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L605-L613", "id": "6be902af0a43fce0f1356e230aa8941289c58cdceda970c10949381697c228e2", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "userFeeRebate < BASE_9 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token0()] == 0 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token1()] == 0", "source_mapping": {"start": 13406, "length": 276, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [239, 240, 241, 242], "starting_column": 13, "ending_column": 85}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}}], "description": "OldDistributionCreator._createDistribution(DistributionParameters) (contracts/deprecated/OldDistributionCreator.sol#212-263) has external calls inside a loop: userFeeRebate < BASE_9 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token0()] == 0 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token1()] == 0 (contracts/deprecated/OldDistributionCreator.sol#239-242)\n", "markdown": "[OldDistributionCreator._createDistribution(DistributionParameters)](contracts/deprecated/OldDistributionCreator.sol#L212-L263) has external calls inside a loop: [userFeeRebate < BASE_9 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token0()] == 0 && isWhitelistedToken[IUniswapV3Pool(distribution.uniV3Pool).token1()] == 0](contracts/deprecated/OldDistributionCreator.sol#L239-L242)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L212-L263", "id": "245d152cfa3a95eed4f04af1927a3799c7b9a95931025b3bc67b7fec66aaa8b9", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "recoverFees", "source_mapping": {"start": 21357, "length": 335, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [400, 401, 402, 403, 404, 405, 406, 407, 408], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "recoverFees(IERC20[],address)"}}, {"type": "node", "name": "tokens[i].safeTransfer(to,tokens[i].balanceOf(address(this)))", "source_mapping": {"start": 21554, "length": 62, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [403], "starting_column": 13, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverFees", "source_mapping": {"start": 21357, "length": 335, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [400, 401, 402, 403, 404, 405, 406, 407, 408], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "recoverFees(IERC20[],address)"}}}}], "description": "OldDistributionCreator.recoverFees(IERC20[],address) (contracts/deprecated/OldDistributionCreator.sol#400-408) has external calls inside a loop: tokens[i].safeTransfer(to,tokens[i].balanceOf(address(this))) (contracts/deprecated/OldDistributionCreator.sol#403)\n", "markdown": "[OldDistributionCreator.recoverFees(IERC20[],address)](contracts/deprecated/OldDistributionCreator.sol#L400-L408) has external calls inside a loop: [tokens[i].safeTransfer(to,tokens[i].balanceOf(address(this)))](contracts/deprecated/OldDistributionCreator.sol#L403)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L400-L408", "id": "5c654c48c8859ccd64a8ae776a5986d415a3d4939c09d8c615453d7458fa8057", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "gaugeType = IGaugeController(controller).gauge_types(gaugeAddr)", "source_mapping": {"start": 6266, "length": 70, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [130], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) has external calls inside a loop: gaugeType = IGaugeController(controller).gauge_types(gaugeAddr) (contracts/mock/AngleDistributor.sol#130)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) has external calls inside a loop: [gaugeType = IGaugeController(controller).gauge_types(gaugeAddr)](contracts/mock/AngleDistributor.sol#L130)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "6a2044c924a37b2bd971c8b29313654688d4a2faa77b4d1f526455fcaef49096", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "relWeightAtWeek = controller.gauge_relative_weight_write(gaugeAddr,block.timestamp)", "source_mapping": {"start": 7624, "length": 84, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [159], "starting_column": 17, "ending_column": 101}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) has external calls inside a loop: relWeightAtWeek = controller.gauge_relative_weight_write(gaugeAddr,block.timestamp) (contracts/mock/AngleDistributor.sol#159)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) has external calls inside a loop: [relWeightAtWeek = controller.gauge_relative_weight_write(gaugeAddr,block.timestamp)](contracts/mock/AngleDistributor.sol#L159)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "c3e61f1382fce9eee1633abc6f916192f00bc8dd50f4127e54c26a310264d43b", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "relWeightAtWeek = controller.gauge_relative_weight(gaugeAddr,(block.timestamp - WEEK * i))", "source_mapping": {"start": 7771, "length": 91, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [162], "starting_column": 17, "ending_column": 108}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) has external calls inside a loop: relWeightAtWeek = controller.gauge_relative_weight(gaugeAddr,(block.timestamp - WEEK * i)) (contracts/mock/AngleDistributor.sol#162)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) has external calls inside a loop: [relWeightAtWeek = controller.gauge_relative_weight(gaugeAddr,(block.timestamp - WEEK * i))](contracts/mock/AngleDistributor.sol#L162)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "067febe67e04ad49b12ee56c735c6a4d6647d9af21c4a0b25886d1981b6063ad", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_sendDelegateRewards", "source_mapping": {"start": 10356, "length": 448, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_sendDelegateRewards(address,address,uint256)"}}, {"type": "node", "name": "IAngleMiddlemanGauge(delegate).notifyReward(gaugeAddr,rewardTally)", "source_mapping": {"start": 10720, "length": 67, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [218], "starting_column": 13, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "_sendDelegateRewards", "source_mapping": {"start": 10356, "length": 448, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_sendDelegateRewards(address,address,uint256)"}}}}], "description": "AngleDistributor._sendDelegateRewards(address,address,uint256) (contracts/mock/AngleDistributor.sol#209-220) has external calls inside a loop: IAngleMiddlemanGauge(delegate).notifyReward(gaugeAddr,rewardTally) (contracts/mock/AngleDistributor.sol#218)\n", "markdown": "[AngleDistributor._sendDelegateRewards(address,address,uint256)](contracts/mock/AngleDistributor.sol#L209-L220) has external calls inside a loop: [IAngleMiddlemanGauge(delegate).notifyReward(gaugeAddr,rewardTally)](contracts/mock/AngleDistributor.sol#L218)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L209-L220", "id": "c61cd2e1d4aaadc0608168aeb953110e50ded3a3bea7a8feae87249ed8e7507c", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "IStakingRewards(gaugeAddr).notifyRewardAmount(rewardTally)", "source_mapping": {"start": 9745, "length": 58, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [195], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) has external calls inside a loop: IStakingRewards(gaugeAddr).notifyRewardAmount(rewardTally) (contracts/mock/AngleDistributor.sol#195)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) has external calls inside a loop: [IStakingRewards(gaugeAddr).notifyRewardAmount(rewardTally)](contracts/mock/AngleDistributor.sol#L195)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "2cefc36a4564dfce227c3f1662b17c2607f115937f81e98f8f35836a8c306c22", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "ILiquidityGauge(gaugeAddr).deposit_reward_token(address(rewardToken),rewardTally)", "source_mapping": {"start": 10085, "length": 82, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [202], "starting_column": 17, "ending_column": 99}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) has external calls inside a loop: ILiquidityGauge(gaugeAddr).deposit_reward_token(address(rewardToken),rewardTally) (contracts/mock/AngleDistributor.sol#202)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) has external calls inside a loop: [ILiquidityGauge(gaugeAddr).deposit_reward_token(address(rewardToken),rewardTally)](contracts/mock/AngleDistributor.sol#L202)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "c3466b1aea8fb5523936052d2d1f9dbd4fc26f978f175c852d77a306711fcca7", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "safeApprove", "source_mapping": {"start": 1475, "length": 603, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeERC20", "source_mapping": {"start": 707, "length": 3748, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "safeApprove(IERC20,address,uint256)"}}, {"type": "node", "name": "require(bool,string)((value == 0) || (token.allowance(address(this),spender) == 0),SafeERC20: approve from non-zero to non-zero allowance)", "source_mapping": {"start": 1808, "length": 163, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [54, 55, 56, 57], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "safeApprove", "source_mapping": {"start": 1475, "length": 603, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeERC20", "source_mapping": {"start": 707, "length": 3748, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "safeApprove(IERC20,address,uint256)"}}}}], "description": "SafeERC20.safeApprove(IERC20,address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#46-59) has external calls inside a loop: require(bool,string)((value == 0) || (token.allowance(address(this),spender) == 0),SafeERC20: approve from non-zero to non-zero allowance) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#54-57)\n", "markdown": "[SafeERC20.safeApprove(IERC20,address,uint256)](node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L46-L59) has external calls inside a loop: [require(bool,string)((value == 0) || (token.allowance(address(this),spender) == 0),SafeERC20: approve from non-zero to non-zero allowance)](node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L54-L57)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L46-L59", "id": "4652250a077be8d64f1c46379c7687ec59164a3ed0c02506b1e4129ddbc6430c", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees)", "source_mapping": {"start": 14578, "length": 188, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [259, 260, 261, 262, 263], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount)", "source_mapping": {"start": 14903, "length": 94, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [268], "starting_column": 9, "ending_column": 103}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees)", "source_mapping": {"start": 14578, "length": 188, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [259, 260, 261, 262, 263], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount)", "source_mapping": {"start": 14903, "length": 94, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [268], "starting_column": 9, "ending_column": 103}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "distributionList.push(distribution)", "source_mapping": {"start": 15198, "length": 35, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [272], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "distributionList"}}, {"type": "node", "name": "nonces[msg.sender] = senderNonce + 1", "source_mapping": {"start": 15057, "length": 36, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [270], "starting_column": 9, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "nonces"}}], "description": "Reentrancy in DistributionCreator._createDistribution(DistributionParameters) (contracts/DistributionCreator.sol#223-274):\n\tExternal calls:\n\t- IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees) (contracts/DistributionCreator.sol#259-263)\n\t- IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount) (contracts/DistributionCreator.sol#268)\n\tState variables written after the call(s):\n\t- distributionList.push(distribution) (contracts/DistributionCreator.sol#272)\n\t- nonces[msg.sender] = senderNonce + 1 (contracts/DistributionCreator.sol#270)\n", "markdown": "Reentrancy in [DistributionCreator._createDistribution(DistributionParameters)](contracts/DistributionCreator.sol#L223-L274):\n\tExternal calls:\n\t- [IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees)](contracts/DistributionCreator.sol#L259-L263)\n\t- [IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount)](contracts/DistributionCreator.sol#L268)\n\tState variables written after the call(s):\n\t- [distributionList.push(distribution)](contracts/DistributionCreator.sol#L272)\n\t- [nonces[msg.sender] = senderNonce + 1](contracts/DistributionCreator.sol#L270)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L223-L274", "id": "931a1a9d336f3170e5903c86be9a392b31bd61a71620c5a96bf78cc7bb8e6654", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees)", "source_mapping": {"start": 14018, "length": 188, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [248, 249, 250, 251, 252], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount)", "source_mapping": {"start": 14343, "length": 94, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [257], "starting_column": 9, "ending_column": 103}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees)", "source_mapping": {"start": 14018, "length": 188, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [248, 249, 250, 251, 252], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount)", "source_mapping": {"start": 14343, "length": 94, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [257], "starting_column": 9, "ending_column": 103}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "distributionList.push(distribution)", "source_mapping": {"start": 14638, "length": 35, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [261], "starting_column": 9, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "distributionList"}}, {"type": "node", "name": "nonces[msg.sender] = senderNonce + 1", "source_mapping": {"start": 14497, "length": 36, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [259], "starting_column": 9, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "nonces"}}], "description": "Reentrancy in OldDistributionCreator._createDistribution(DistributionParameters) (contracts/deprecated/OldDistributionCreator.sol#212-263):\n\tExternal calls:\n\t- IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees) (contracts/deprecated/OldDistributionCreator.sol#248-252)\n\t- IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount) (contracts/deprecated/OldDistributionCreator.sol#257)\n\tState variables written after the call(s):\n\t- distributionList.push(distribution) (contracts/deprecated/OldDistributionCreator.sol#261)\n\t- nonces[msg.sender] = senderNonce + 1 (contracts/deprecated/OldDistributionCreator.sol#259)\n", "markdown": "Reentrancy in [OldDistributionCreator._createDistribution(DistributionParameters)](contracts/deprecated/OldDistributionCreator.sol#L212-L263):\n\tExternal calls:\n\t- [IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,_feeRecipient,distributionAmount - distributionAmountMinusFees)](contracts/deprecated/OldDistributionCreator.sol#L248-L252)\n\t- [IERC20(distribution.rewardToken).safeTransferFrom(msg.sender,distributor,distributionAmount)](contracts/deprecated/OldDistributionCreator.sol#L257)\n\tState variables written after the call(s):\n\t- [distributionList.push(distribution)](contracts/deprecated/OldDistributionCreator.sol#L261)\n\t- [nonces[msg.sender] = senderNonce + 1](contracts/deprecated/OldDistributionCreator.sol#L259)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L212-L263", "id": "aecfdea715884252dd6a270a74311fe80911062a6e5b5fb81113d010cdc154c0", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)", "source_mapping": {"start": 11677, "length": 79, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [230], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)", "source_mapping": {"start": 11677, "length": 79, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [230], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "disputer = msg.sender", "source_mapping": {"start": 11766, "length": 21, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [231], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "disputer"}}], "description": "Reentrancy in OldDistributor.disputeTree(string) (contracts/deprecated/OldDistributor.sol#228-233):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount) (contracts/deprecated/OldDistributor.sol#230)\n\tState variables written after the call(s):\n\t- disputer = msg.sender (contracts/deprecated/OldDistributor.sol#231)\n", "markdown": "Reentrancy in [OldDistributor.disputeTree(string)](contracts/deprecated/OldDistributor.sol#L228-L233):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)](contracts/deprecated/OldDistributor.sol#L230)\n\tState variables written after the call(s):\n\t- [disputer = msg.sender](contracts/deprecated/OldDistributor.sol#L231)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L228-L233", "id": "498fc2d2ec7e70970521433fc38789c71d6f797c1a9a6f651d7cd660e74b809f", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12606, "length": 58, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12606, "length": 58, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12774, "length": 13, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [250], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "endOfDisputePeriod"}}, {"type": "node", "name": "endOfDisputePeriod = 0", "source_mapping": {"start": 15448, "length": 22, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [311], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 15362, "length": 345, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "endOfDisputePeriod"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12774, "length": 13, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [250], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "tree"}}, {"type": "node", "name": "tree = _tree", "source_mapping": {"start": 15480, "length": 12, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [312], "starting_column": 9, "ending_column": 21}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 15362, "length": 345, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "tree"}}], "description": "Reentrancy in Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/Distributor.sol#248)\n\tState variables written after the call(s):\n\t- _revokeTree() (contracts/Distributor.sol#250)\n\t\t- endOfDisputePeriod = 0 (contracts/Distributor.sol#311)\n\t- _revokeTree() (contracts/Distributor.sol#250)\n\t\t- tree = _tree (contracts/Distributor.sol#312)\n", "markdown": "Reentrancy in [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/Distributor.sol#L248)\n\tState variables written after the call(s):\n\t- [_revokeTree()](contracts/Distributor.sol#L250)\n\t\t- [endOfDisputePeriod = 0](contracts/Distributor.sol#L311)\n\t- [_revokeTree()](contracts/Distributor.sol#L250)\n\t\t- [tree = _tree](contracts/Distributor.sol#L312)\n", "first_markdown_element": "contracts/Distributor.sol#L245-L257", "id": "d502b96bf6cca465e4353e5dbf7fd53434d71921a76a5eb61ad5112dadbe24d6", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12818, "length": 60, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [252], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12818, "length": 60, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [252], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "endOfDisputePeriod = _endOfDisputePeriod(uint48(block.timestamp))", "source_mapping": {"start": 12892, "length": 65, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [253], "starting_column": 13, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "endOfDisputePeriod"}}], "description": "Reentrancy in Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount) (contracts/Distributor.sol#252)\n\tState variables written after the call(s):\n\t- endOfDisputePeriod = _endOfDisputePeriod(uint48(block.timestamp)) (contracts/Distributor.sol#253)\n", "markdown": "Reentrancy in [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)](contracts/Distributor.sol#L252)\n\tState variables written after the call(s):\n\t- [endOfDisputePeriod = _endOfDisputePeriod(uint48(block.timestamp))](contracts/Distributor.sol#L253)\n", "first_markdown_element": "contracts/Distributor.sol#L245-L257", "id": "1cc957525b252f468b3b2e9433c9c86ccc86d5a983be4606d9e82097f9f97538", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12093, "length": 58, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [240], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12093, "length": 58, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [240], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12261, "length": 13, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [242], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "lastTreeUpdate"}}, {"type": "node", "name": "lastTreeUpdate = 0", "source_mapping": {"start": 14980, "length": 18, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [304], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 14894, "length": 193, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [302, 303, 304, 305, 306, 307], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "lastTreeUpdate"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12261, "length": 13, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [242], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "tree"}}, {"type": "node", "name": "tree = _tree", "source_mapping": {"start": 15008, "length": 12, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [305], "starting_column": 9, "ending_column": 21}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 14894, "length": 193, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [302, 303, 304, 305, 306, 307], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "tree"}}], "description": "Reentrancy in OldDistributor.resolveDispute(bool) (contracts/deprecated/OldDistributor.sol#237-249):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/deprecated/OldDistributor.sol#240)\n\tState variables written after the call(s):\n\t- _revokeTree() (contracts/deprecated/OldDistributor.sol#242)\n\t\t- lastTreeUpdate = 0 (contracts/deprecated/OldDistributor.sol#304)\n\t- _revokeTree() (contracts/deprecated/OldDistributor.sol#242)\n\t\t- tree = _tree (contracts/deprecated/OldDistributor.sol#305)\n", "markdown": "Reentrancy in [OldDistributor.resolveDispute(bool)](contracts/deprecated/OldDistributor.sol#L237-L249):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/deprecated/OldDistributor.sol#L240)\n\tState variables written after the call(s):\n\t- [_revokeTree()](contracts/deprecated/OldDistributor.sol#L242)\n\t\t- [lastTreeUpdate = 0](contracts/deprecated/OldDistributor.sol#L304)\n\t- [_revokeTree()](contracts/deprecated/OldDistributor.sol#L242)\n\t\t- [tree = _tree](contracts/deprecated/OldDistributor.sol#L305)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L237-L249", "id": "f9bcec2f38440c725fd2e611b0fc315d62a02a8d3209d994cc2829e4604f989b", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12305, "length": 60, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [244], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12305, "length": 60, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [244], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "lastTreeUpdate = uint48(block.timestamp)", "source_mapping": {"start": 12379, "length": 40, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [245], "starting_column": 13, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "lastTreeUpdate"}}], "description": "Reentrancy in OldDistributor.resolveDispute(bool) (contracts/deprecated/OldDistributor.sol#237-249):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount) (contracts/deprecated/OldDistributor.sol#244)\n\tState variables written after the call(s):\n\t- lastTreeUpdate = uint48(block.timestamp) (contracts/deprecated/OldDistributor.sol#245)\n", "markdown": "Reentrancy in [OldDistributor.resolveDispute(bool)](contracts/deprecated/OldDistributor.sol#L237-L249):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)](contracts/deprecated/OldDistributor.sol#L244)\n\tState variables written after the call(s):\n\t- [lastTreeUpdate = uint48(block.timestamp)](contracts/deprecated/OldDistributor.sol#L245)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L237-L249", "id": "9839cb1720ed7210cc0143791189788bb5c3aebbd417e2829845ac65053fa47c", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}, {"type": "node", "name": "IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount)", "source_mapping": {"start": 2175, "length": 71, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [84], "starting_column": 9, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount)", "source_mapping": {"start": 2175, "length": 71, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [84], "starting_column": 9, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "_mint(to,canonicalOut)", "source_mapping": {"start": 2350, "length": 23, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [87], "starting_column": 9, "ending_column": 32}, "type_specific_fields": {"parent": {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_balances"}}, {"type": "node", "name": "_balances[account] += amount", "source_mapping": {"start": 8946, "length": 28, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [267], "starting_column": 13, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "_mint", "source_mapping": {"start": 8567, "length": 535, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20", "source_mapping": {"start": 1401, "length": 11610, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "_mint(address,uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_balances"}}, {"type": "node", "name": "_mint(to,canonicalOut)", "source_mapping": {"start": 2350, "length": 23, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [87], "starting_column": 9, "ending_column": 32}, "type_specific_fields": {"parent": {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_totalSupply"}}, {"type": "node", "name": "_totalSupply += amount", "source_mapping": {"start": 8778, "length": 22, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [264], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "_mint", "source_mapping": {"start": 8567, "length": 535, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20", "source_mapping": {"start": 1401, "length": 11610, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "_mint(address,uint256)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "_totalSupply"}}], "description": "Reentrancy in MockTokenPermit.swapIn(address,uint256,address) (contracts/mock/MockTokenPermit.sol#77-89):\n\tExternal calls:\n\t- IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount) (contracts/mock/MockTokenPermit.sol#84)\n\tState variables written after the call(s):\n\t- _mint(to,canonicalOut) (contracts/mock/MockTokenPermit.sol#87)\n\t\t- _balances[account] += amount (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#267)\n\t- _mint(to,canonicalOut) (contracts/mock/MockTokenPermit.sol#87)\n\t\t- _totalSupply += amount (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#264)\n", "markdown": "Reentrancy in [MockTokenPermit.swapIn(address,uint256,address)](contracts/mock/MockTokenPermit.sol#L77-L89):\n\tExternal calls:\n\t- [IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount)](contracts/mock/MockTokenPermit.sol#L84)\n\tState variables written after the call(s):\n\t- [_mint(to,canonicalOut)](contracts/mock/MockTokenPermit.sol#L87)\n\t\t- [_balances[account] += amount](node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L267)\n\t- [_mint(to,canonicalOut)](contracts/mock/MockTokenPermit.sol#L87)\n\t\t- [_totalSupply += amount](node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L264)\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L77-L89", "id": "d7c7c90f5811f615345b5113b2f3611a07b5b0378d528501f08850f83c11c5b9", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 8838, "length": 1350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}, {"type": "node", "name": "IERC20(token).safeTransfer(user,toSend)", "source_mapping": {"start": 10025, "length": 40, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [191], "starting_column": 13, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8838, "length": 1350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Claimed(user,token,toSend)", "source_mapping": {"start": 10079, "length": 33, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [192], "starting_column": 13, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8838, "length": 1350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Distributor.claim(address[],address[],uint256[],bytes32[][]) (contracts/Distributor.sol#161-197):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(user,toSend) (contracts/Distributor.sol#191)\n\tEvent emitted after the call(s):\n\t- Claimed(user,token,toSend) (contracts/Distributor.sol#192)\n", "markdown": "Reentrancy in [Distributor.claim(address[],address[],uint256[],bytes32[][])](contracts/Distributor.sol#L161-L197):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(user,toSend)](contracts/Distributor.sol#L191)\n\tEvent emitted after the call(s):\n\t- [Claimed(user,token,toSend)](contracts/Distributor.sol#L192)\n", "first_markdown_element": "contracts/Distributor.sol#L161-L197", "id": "9413820047c00c1afe1c96f89129cba2b75df1b5b10843abd7b5c6aa795ebbd5", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "claim", "source_mapping": {"start": 8483, "length": 1333, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}, {"type": "node", "name": "IERC20(token).safeTransfer(user,toSend)", "source_mapping": {"start": 9653, "length": 40, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [186], "starting_column": 13, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8483, "length": 1333, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Claimed(user,token,toSend)", "source_mapping": {"start": 9707, "length": 33, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [187], "starting_column": 13, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "claim", "source_mapping": {"start": 8483, "length": 1333, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "claim(address[],address[],uint256[],bytes32[][])"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in OldDistributor.claim(address[],address[],uint256[],bytes32[][]) (contracts/deprecated/OldDistributor.sol#156-192):\n\tExternal calls:\n\t- IERC20(token).safeTransfer(user,toSend) (contracts/deprecated/OldDistributor.sol#186)\n\tEvent emitted after the call(s):\n\t- Claimed(user,token,toSend) (contracts/deprecated/OldDistributor.sol#187)\n", "markdown": "Reentrancy in [OldDistributor.claim(address[],address[],uint256[],bytes32[][])](contracts/deprecated/OldDistributor.sol#L156-L192):\n\tExternal calls:\n\t- [IERC20(token).safeTransfer(user,toSend)](contracts/deprecated/OldDistributor.sol#L186)\n\tEvent emitted after the call(s):\n\t- [Claimed(user,token,toSend)](contracts/deprecated/OldDistributor.sol#L187)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L156-L192", "id": "5b73fe428e7d3f13d351e2e24761442dec9f54f6894f4e6c2eb080f3f98eba84", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)", "source_mapping": {"start": 12190, "length": 79, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [238], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Disputed(reason)", "source_mapping": {"start": 12310, "length": 21, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [240], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Distributor.disputeTree(string) (contracts/Distributor.sol#235-241):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount) (contracts/Distributor.sol#238)\n\tEvent emitted after the call(s):\n\t- Disputed(reason) (contracts/Distributor.sol#240)\n", "markdown": "Reentrancy in [Distributor.disputeTree(string)](contracts/Distributor.sol#L235-L241):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)](contracts/Distributor.sol#L238)\n\tEvent emitted after the call(s):\n\t- [Disputed(reason)](contracts/Distributor.sol#L240)\n", "first_markdown_element": "contracts/Distributor.sol#L235-L241", "id": "fbbb5363fa9c60621b2febabc87e9937eee1d71bf850b829401edf735755af9d", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)", "source_mapping": {"start": 11677, "length": 79, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [230], "starting_column": 9, "ending_column": 88}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Disputed(reason)", "source_mapping": {"start": 11797, "length": 21, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [232], "starting_column": 9, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in OldDistributor.disputeTree(string) (contracts/deprecated/OldDistributor.sol#228-233):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount) (contracts/deprecated/OldDistributor.sol#230)\n\tEvent emitted after the call(s):\n\t- Disputed(reason) (contracts/deprecated/OldDistributor.sol#232)\n", "markdown": "Reentrancy in [OldDistributor.disputeTree(string)](contracts/deprecated/OldDistributor.sol#L228-L233):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransferFrom(msg.sender,address(this),disputeAmount)](contracts/deprecated/OldDistributor.sol#L230)\n\tEvent emitted after the call(s):\n\t- [Disputed(reason)](contracts/deprecated/OldDistributor.sol#L232)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L228-L233", "id": "96581df8e671d27e972b148244e10246973e779bda9d3ab74720ca3233c60ccb", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "recoverERC20", "source_mapping": {"start": 14042, "length": 243, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [281, 282, 283, 284], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}, {"type": "node", "name": "IERC20(tokenAddress).safeTransfer(to,amountToRecover)", "source_mapping": {"start": 14165, "length": 54, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [282], "starting_column": 9, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverERC20", "source_mapping": {"start": 14042, "length": 243, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [281, 282, 283, 284], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Recovered(tokenAddress,to,amountToRecover)", "source_mapping": {"start": 14229, "length": 49, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [283], "starting_column": 9, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverERC20", "source_mapping": {"start": 14042, "length": 243, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [281, 282, 283, 284], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Distributor.recoverERC20(address,address,uint256) (contracts/Distributor.sol#281-284):\n\tExternal calls:\n\t- IERC20(tokenAddress).safeTransfer(to,amountToRecover) (contracts/Distributor.sol#282)\n\tEvent emitted after the call(s):\n\t- Recovered(tokenAddress,to,amountToRecover) (contracts/Distributor.sol#283)\n", "markdown": "Reentrancy in [Distributor.recoverERC20(address,address,uint256)](contracts/Distributor.sol#L281-L284):\n\tExternal calls:\n\t- [IERC20(tokenAddress).safeTransfer(to,amountToRecover)](contracts/Distributor.sol#L282)\n\tEvent emitted after the call(s):\n\t- [Recovered(tokenAddress,to,amountToRecover)](contracts/Distributor.sol#L283)\n", "first_markdown_element": "contracts/Distributor.sol#L281-L284", "id": "6ae70b6b5235528243265b7726b94253a2622ec303ba1f30658ced2db0b41592", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "recoverERC20", "source_mapping": {"start": 13504, "length": 243, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [273, 274, 275, 276], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}, {"type": "node", "name": "IERC20(tokenAddress).safeTransfer(to,amountToRecover)", "source_mapping": {"start": 13627, "length": 54, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [274], "starting_column": 9, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverERC20", "source_mapping": {"start": 13504, "length": 243, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [273, 274, 275, 276], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Recovered(tokenAddress,to,amountToRecover)", "source_mapping": {"start": 13691, "length": 49, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [275], "starting_column": 9, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverERC20", "source_mapping": {"start": 13504, "length": 243, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [273, 274, 275, 276], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in OldDistributor.recoverERC20(address,address,uint256) (contracts/deprecated/OldDistributor.sol#273-276):\n\tExternal calls:\n\t- IERC20(tokenAddress).safeTransfer(to,amountToRecover) (contracts/deprecated/OldDistributor.sol#274)\n\tEvent emitted after the call(s):\n\t- Recovered(tokenAddress,to,amountToRecover) (contracts/deprecated/OldDistributor.sol#275)\n", "markdown": "Reentrancy in [OldDistributor.recoverERC20(address,address,uint256)](contracts/deprecated/OldDistributor.sol#L273-L276):\n\tExternal calls:\n\t- [IERC20(tokenAddress).safeTransfer(to,amountToRecover)](contracts/deprecated/OldDistributor.sol#L274)\n\tEvent emitted after the call(s):\n\t- [Recovered(tokenAddress,to,amountToRecover)](contracts/deprecated/OldDistributor.sol#L275)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L273-L276", "id": "039de5b6ac99d7bcf97d7231dccf352ab8daee43427cf6abb956d8856d8a1dcf", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "recoverERC20", "source_mapping": {"start": 15184, "length": 1157, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}, {"type": "node", "name": "IERC20(tokenAddress).safeTransfer(to,amount)", "source_mapping": {"start": 16239, "length": 45, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [325], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverERC20", "source_mapping": {"start": 15184, "length": 1157, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Recovered(tokenAddress,to,amount)", "source_mapping": {"start": 16294, "length": 40, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [326], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "recoverERC20", "source_mapping": {"start": 15184, "length": 1157, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "recoverERC20(address,address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in AngleDistributor.recoverERC20(address,address,uint256) (contracts/mock/AngleDistributor.sol#306-327):\n\tExternal calls:\n\t- IERC20(tokenAddress).safeTransfer(to,amount) (contracts/mock/AngleDistributor.sol#325)\n\tEvent emitted after the call(s):\n\t- Recovered(tokenAddress,to,amount) (contracts/mock/AngleDistributor.sol#326)\n", "markdown": "Reentrancy in [AngleDistributor.recoverERC20(address,address,uint256)](contracts/mock/AngleDistributor.sol#L306-L327):\n\tExternal calls:\n\t- [IERC20(tokenAddress).safeTransfer(to,amount)](contracts/mock/AngleDistributor.sol#L325)\n\tEvent emitted after the call(s):\n\t- [Recovered(tokenAddress,to,amount)](contracts/mock/AngleDistributor.sol#L326)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L306-L327", "id": "1bd69a6de91dbf3253898857eb2d4642fb0e5cadb06fee05f2dc1e3db559c4e2", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12606, "length": 58, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Revoked()", "source_mapping": {"start": 15502, "length": 14, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [313], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 15362, "length": 345, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12774, "length": 13, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [250], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "TreeUpdated(_tree.merkleRoot,_tree.ipfsHash,(uint48(block.timestamp) / _EPOCH_DURATION) * (_EPOCH_DURATION))", "source_mapping": {"start": 15526, "length": 174, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [314, 315, 316, 317, 318], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 15362, "length": 345, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12774, "length": 13, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [250], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/Distributor.sol#248)\n\tEvent emitted after the call(s):\n\t- Revoked() (contracts/Distributor.sol#313)\n\t\t- _revokeTree() (contracts/Distributor.sol#250)\n\t- TreeUpdated(_tree.merkleRoot,_tree.ipfsHash,(uint48(block.timestamp) / _EPOCH_DURATION) * (_EPOCH_DURATION)) (contracts/Distributor.sol#314-318)\n\t\t- _revokeTree() (contracts/Distributor.sol#250)\n", "markdown": "Reentrancy in [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/Distributor.sol#L248)\n\tEvent emitted after the call(s):\n\t- [Revoked()](contracts/Distributor.sol#L313)\n\t\t- [_revokeTree()](contracts/Distributor.sol#L250)\n\t- [TreeUpdated(_tree.merkleRoot,_tree.ipfsHash,(uint48(block.timestamp) / _EPOCH_DURATION) * (_EPOCH_DURATION))](contracts/Distributor.sol#L314-L318)\n\t\t- [_revokeTree()](contracts/Distributor.sol#L250)\n", "first_markdown_element": "contracts/Distributor.sol#L245-L257", "id": "58f365a5d3412f54a0a1cacdbb7845f3c946e1b3d3c9e8fff2604bfcc7f36ca2", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12606, "length": 58, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [248], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12818, "length": 60, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [252], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "DisputeResolved(valid)", "source_mapping": {"start": 13008, "length": 27, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [256], "starting_column": 9, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 12447, "length": 595, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Distributor.resolveDispute(bool) (contracts/Distributor.sol#245-257):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/Distributor.sol#248)\n\t- IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount) (contracts/Distributor.sol#252)\n\tEvent emitted after the call(s):\n\t- DisputeResolved(valid) (contracts/Distributor.sol#256)\n", "markdown": "Reentrancy in [Distributor.resolveDispute(bool)](contracts/Distributor.sol#L245-L257):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/Distributor.sol#L248)\n\t- [IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)](contracts/Distributor.sol#L252)\n\tEvent emitted after the call(s):\n\t- [DisputeResolved(valid)](contracts/Distributor.sol#L256)\n", "first_markdown_element": "contracts/Distributor.sol#L245-L257", "id": "1cd5d0799b211002069e4a3df9a3b3e4147df7eb4ffac33da9b5260c1421a614", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12093, "length": 58, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [240], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "TreeUpdated(_tree.merkleRoot,_tree.ipfsHash)", "source_mapping": {"start": 15030, "length": 50, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [306], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeTree", "source_mapping": {"start": 14894, "length": 193, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [302, 303, 304, 305, 306, 307], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeTree()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "_revokeTree()", "source_mapping": {"start": 12261, "length": 13, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [242], "starting_column": 13, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in OldDistributor.resolveDispute(bool) (contracts/deprecated/OldDistributor.sol#237-249):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/deprecated/OldDistributor.sol#240)\n\tEvent emitted after the call(s):\n\t- TreeUpdated(_tree.merkleRoot,_tree.ipfsHash) (contracts/deprecated/OldDistributor.sol#306)\n\t\t- _revokeTree() (contracts/deprecated/OldDistributor.sol#242)\n", "markdown": "Reentrancy in [OldDistributor.resolveDispute(bool)](contracts/deprecated/OldDistributor.sol#L237-L249):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/deprecated/OldDistributor.sol#L240)\n\tEvent emitted after the call(s):\n\t- [TreeUpdated(_tree.merkleRoot,_tree.ipfsHash)](contracts/deprecated/OldDistributor.sol#L306)\n\t\t- [_revokeTree()](contracts/deprecated/OldDistributor.sol#L242)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L237-L249", "id": "99b59a90f48f96569d8f4c3371e12d3a39e05b12145296b07eb659aedc67144d", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(disputer,disputeAmount)", "source_mapping": {"start": 12093, "length": 58, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [240], "starting_column": 13, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)", "source_mapping": {"start": 12305, "length": 60, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [244], "starting_column": 13, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "DisputeResolved(valid)", "source_mapping": {"start": 12470, "length": 27, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [248], "starting_column": 9, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "resolveDispute", "source_mapping": {"start": 11934, "length": 570, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "resolveDispute(bool)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in OldDistributor.resolveDispute(bool) (contracts/deprecated/OldDistributor.sol#237-249):\n\tExternal calls:\n\t- IERC20(disputeToken).safeTransfer(disputer,disputeAmount) (contracts/deprecated/OldDistributor.sol#240)\n\t- IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount) (contracts/deprecated/OldDistributor.sol#244)\n\tEvent emitted after the call(s):\n\t- DisputeResolved(valid) (contracts/deprecated/OldDistributor.sol#248)\n", "markdown": "Reentrancy in [OldDistributor.resolveDispute(bool)](contracts/deprecated/OldDistributor.sol#L237-L249):\n\tExternal calls:\n\t- [IERC20(disputeToken).safeTransfer(disputer,disputeAmount)](contracts/deprecated/OldDistributor.sol#L240)\n\t- [IERC20(disputeToken).safeTransfer(msg.sender,disputeAmount)](contracts/deprecated/OldDistributor.sol#L244)\n\tEvent emitted after the call(s):\n\t- [DisputeResolved(valid)](contracts/deprecated/OldDistributor.sol#L248)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L237-L249", "id": "60f871c9d4879c5106e7729f3976bfc503a877af781c900af665393779d2ca80", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}, {"type": "node", "name": "IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount)", "source_mapping": {"start": 2175, "length": 71, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [84], "starting_column": 9, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "Transfer(address(0),account,amount)", "source_mapping": {"start": 8994, "length": 42, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [269], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "_mint", "source_mapping": {"start": 8567, "length": 535, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20", "source_mapping": {"start": 1401, "length": 11610, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389], "starting_column": 1, "ending_column": 2}}, "signature": "_mint(address,uint256)"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "_mint(to,canonicalOut)", "source_mapping": {"start": 2350, "length": 23, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [87], "starting_column": 9, "ending_column": 32}, "type_specific_fields": {"parent": {"type": "function", "name": "swapIn", "source_mapping": {"start": 2015, "length": 394, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "swapIn(address,uint256,address)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in MockTokenPermit.swapIn(address,uint256,address) (contracts/mock/MockTokenPermit.sol#77-89):\n\tExternal calls:\n\t- IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount) (contracts/mock/MockTokenPermit.sol#84)\n\tEvent emitted after the call(s):\n\t- Transfer(address(0),account,amount) (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#269)\n\t\t- _mint(to,canonicalOut) (contracts/mock/MockTokenPermit.sol#87)\n", "markdown": "Reentrancy in [MockTokenPermit.swapIn(address,uint256,address)](contracts/mock/MockTokenPermit.sol#L77-L89):\n\tExternal calls:\n\t- [IERC20(bridgeToken).safeTransferFrom(msg.sender,address(this),amount)](contracts/mock/MockTokenPermit.sol#L84)\n\tEvent emitted after the call(s):\n\t- [Transfer(address(0),account,amount)](node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L269)\n\t\t- [_mint(to,canonicalOut)](contracts/mock/MockTokenPermit.sol#L87)\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L77-L89", "id": "2cdc8f94998b23707f4b41a7a70259679cc491585590d4115cfbdb827abd9db0", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toggleGauge", "source_mapping": {"start": 20263, "length": 382, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleGauge(address)"}}, {"type": "node", "name": "rewardToken.safeApprove(gaugeAddr,0)", "source_mapping": {"start": 20485, "length": 37, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [398], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "toggleGauge", "source_mapping": {"start": 20263, "length": 382, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleGauge(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "GaugeToggled(gaugeAddr,! gaugeKilledMem)", "source_mapping": {"start": 20593, "length": 45, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [401], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "toggleGauge", "source_mapping": {"start": 20263, "length": 382, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [394, 395, 396, 397, 398, 399, 400, 401, 402], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleGauge(address)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in AngleDistributor.toggleGauge(address) (contracts/mock/AngleDistributor.sol#394-402):\n\tExternal calls:\n\t- rewardToken.safeApprove(gaugeAddr,0) (contracts/mock/AngleDistributor.sol#398)\n\tEvent emitted after the call(s):\n\t- GaugeToggled(gaugeAddr,! gaugeKilledMem) (contracts/mock/AngleDistributor.sol#401)\n", "markdown": "Reentrancy in [AngleDistributor.toggleGauge(address)](contracts/mock/AngleDistributor.sol#L394-L402):\n\tExternal calls:\n\t- [rewardToken.safeApprove(gaugeAddr,0)](contracts/mock/AngleDistributor.sol#L398)\n\tEvent emitted after the call(s):\n\t- [GaugeToggled(gaugeAddr,! gaugeKilledMem)](contracts/mock/AngleDistributor.sol#L401)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L394-L402", "id": "7f582828db38984db9b73396283efb703f6596e3689731663617d5e7fceb432b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount", "source_mapping": {"start": 12713, "length": 972, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 13, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 12207, "length": 3089, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}}], "description": "DistributionCreator._createDistribution(DistributionParameters) (contracts/DistributionCreator.sol#223-274) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount (contracts/DistributionCreator.sol#232-244)\n", "markdown": "[DistributionCreator._createDistribution(DistributionParameters)](contracts/DistributionCreator.sol#L223-L274) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount](contracts/DistributionCreator.sol#L232-L244)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L223-L274", "id": "6233e036be5340fe56e03aea24d752a864f05756e99b6bbb7bc3758003f2e683", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_isDistributionLiveBetweenEpochs", "source_mapping": {"start": 33831, "length": 426, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [661, 662, 663, 664, 665, 666, 667, 668, 669], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32)"}}, {"type": "node", "name": "(distributionEpochStart + distribution.numEpoch * EPOCH_DURATION > roundedEpochStart && distributionEpochStart < roundedEpochEnd)", "source_mapping": {"start": 34102, "length": 148, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [667, 668], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "_isDistributionLiveBetweenEpochs", "source_mapping": {"start": 33831, "length": 426, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [661, 662, 663, 664, 665, 666, 667, 668, 669], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32)"}}}}], "description": "DistributionCreator._isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32) (contracts/DistributionCreator.sol#661-669) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (distributionEpochStart + distribution.numEpoch * EPOCH_DURATION > roundedEpochStart && distributionEpochStart < roundedEpochEnd) (contracts/DistributionCreator.sol#667-668)\n", "markdown": "[DistributionCreator._isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32)](contracts/DistributionCreator.sol#L661-L669) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(distributionEpochStart + distribution.numEpoch * EPOCH_DURATION > roundedEpochStart && distributionEpochStart < roundedEpochEnd)](contracts/DistributionCreator.sol#L667-L668)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L661-L669", "id": "ed96aff5862f590c25cb42ed75f79232086f6ba3ab93ac634b27376b9afd6004", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}, {"type": "node", "name": "i < distributionListLength", "source_mapping": {"start": 37238, "length": 26, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [732], "starting_column": 16, "ending_column": 42}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}}}, {"type": "node", "name": "_isDistributionLiveBetweenEpochs(distribution,epochStart,epochEnd) && (uniV3Pool == address(0) || distribution.uniV3Pool == uniV3Pool)", "source_mapping": {"start": 37379, "length": 152, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [735, 736], "starting_column": 17, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}}}, {"type": "node", "name": "length == returnSize", "source_mapping": {"start": 37996, "length": 20, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [749], "starting_column": 17, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}}}, {"type": "node", "name": "first > distributionListLength", "source_mapping": {"start": 36996, "length": 84, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [729], "starting_column": 9, "ending_column": 93}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}}}], "description": "DistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32) (contracts/DistributionCreator.sol#720-755) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- i < distributionListLength (contracts/DistributionCreator.sol#732)\n\t- _isDistributionLiveBetweenEpochs(distribution,epochStart,epochEnd) && (uniV3Pool == address(0) || distribution.uniV3Pool == uniV3Pool) (contracts/DistributionCreator.sol#735-736)\n\t- length == returnSize (contracts/DistributionCreator.sol#749)\n\t- first > distributionListLength (contracts/DistributionCreator.sol#729)\n", "markdown": "[DistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)](contracts/DistributionCreator.sol#L720-L755) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [i < distributionListLength](contracts/DistributionCreator.sol#L732)\n\t- [_isDistributionLiveBetweenEpochs(distribution,epochStart,epochEnd) && (uniV3Pool == address(0) || distribution.uniV3Pool == uniV3Pool)](contracts/DistributionCreator.sol#L735-L736)\n\t- [length == returnSize](contracts/DistributionCreator.sol#L749)\n\t- [first > distributionListLength](contracts/DistributionCreator.sol#L729)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L720-L755", "id": "40b2e6aaf6c086b28a10ee57c4860d9fcc3e0ee1facfd803d77b70cd219ce579", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getMerkleRoot", "source_mapping": {"start": 10273, "length": 204, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [200, 201, 202, 203], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "getMerkleRoot()"}}, {"type": "node", "name": "block.timestamp >= endOfDisputePeriod && disputer == address(0)", "source_mapping": {"start": 10342, "length": 63, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [201], "starting_column": 13, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "getMerkleRoot", "source_mapping": {"start": 10273, "length": 204, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [200, 201, 202, 203], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "getMerkleRoot()"}}}}], "description": "Distributor.getMerkleRoot() (contracts/Distributor.sol#200-203) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp >= endOfDisputePeriod && disputer == address(0) (contracts/Distributor.sol#201)\n", "markdown": "[Distributor.getMerkleRoot()](contracts/Distributor.sol#L200-L203) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp >= endOfDisputePeriod && disputer == address(0)](contracts/Distributor.sol#L201)\n", "first_markdown_element": "contracts/Distributor.sol#L200-L203", "id": "ee1c8de8e0e84527893d5125270ca0d928453f8e2e3ed604a0f07407e25af787", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "updateTree", "source_mapping": {"start": 10933, "length": 773, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "updateTree(MerkleTree)"}}, {"type": "node", "name": "disputer != address(0) || ((canUpdateMerkleRoot[msg.sender] != 1 || block.timestamp < endOfDisputePeriod) && ! core.isGovernorOrGuardian(msg.sender))", "source_mapping": {"start": 11016, "length": 363, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [217, 218, 219, 220, 221], "starting_column": 13, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "updateTree", "source_mapping": {"start": 10933, "length": 773, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "updateTree(MerkleTree)"}}}}], "description": "Distributor.updateTree(MerkleTree) (contracts/Distributor.sol#215-230) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- disputer != address(0) || ((canUpdateMerkleRoot[msg.sender] != 1 || block.timestamp < endOfDisputePeriod) && ! core.isGovernorOrGuardian(msg.sender)) (contracts/Distributor.sol#217-221)\n", "markdown": "[Distributor.updateTree(MerkleTree)](contracts/Distributor.sol#L215-L230) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [disputer != address(0) || ((canUpdateMerkleRoot[msg.sender] != 1 || block.timestamp < endOfDisputePeriod) && ! core.isGovernorOrGuardian(msg.sender))](contracts/Distributor.sol#L217-L221)\n", "first_markdown_element": "contracts/Distributor.sol#L215-L230", "id": "64c3b4d2053c8459d83b540f9ec3607e31642af95857f6ed73439b2f40c130ed", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}, {"type": "node", "name": "block.timestamp >= endOfDisputePeriod", "source_mapping": {"start": 12118, "length": 37, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [237], "starting_column": 13, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11988, "length": 350, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}}], "description": "Distributor.disputeTree(string) (contracts/Distributor.sol#235-241) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp >= endOfDisputePeriod (contracts/Distributor.sol#237)\n", "markdown": "[Distributor.disputeTree(string)](contracts/Distributor.sol#L235-L241) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp >= endOfDisputePeriod](contracts/Distributor.sol#L237)\n", "first_markdown_element": "contracts/Distributor.sol#L235-L241", "id": "6004794442e700dfc6034dd0360e95751213b5c6189fb51ec3e171908bbb2ba8", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}, {"type": "node", "name": "epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount", "source_mapping": {"start": 12153, "length": 972, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 13, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "_createDistribution", "source_mapping": {"start": 11647, "length": 3089, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_createDistribution(DistributionParameters)"}}}}], "description": "OldDistributionCreator._createDistribution(DistributionParameters) (contracts/deprecated/OldDistributionCreator.sol#212-263) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount (contracts/deprecated/OldDistributionCreator.sol#221-233)\n", "markdown": "[OldDistributionCreator._createDistribution(DistributionParameters)](contracts/deprecated/OldDistributionCreator.sol#L212-L263) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [epochStart + EPOCH_DURATION < block.timestamp || distribution.numEpoch == 0 || distribution.propFees + distribution.propToken0 + distribution.propToken1 != 1e4 || (distribution.boostingAddress != address(0) && distribution.boostedReward < 1e4) || distribution.positionWrappers.length != distribution.wrapperTypes.length || minDistributionAmount == 0 || distribution.amount / distribution.numEpoch < minDistributionAmount](contracts/deprecated/OldDistributionCreator.sol#L221-L233)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L212-L263", "id": "01e1e8cdf99ff82e8eb94950a5bd507378cfca3b60cc77c6b34aee34a483b228", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_isDistributionLiveBetweenEpochs", "source_mapping": {"start": 23986, "length": 426, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [456, 457, 458, 459, 460, 461, 462, 463, 464], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32)"}}, {"type": "node", "name": "(distributionEpochStart + distribution.numEpoch * EPOCH_DURATION > roundedEpochStart && distributionEpochStart < roundedEpochEnd)", "source_mapping": {"start": 24257, "length": 148, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [462, 463], "starting_column": 9, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "function", "name": "_isDistributionLiveBetweenEpochs", "source_mapping": {"start": 23986, "length": 426, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [456, 457, 458, 459, 460, 461, 462, 463, 464], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32)"}}}}], "description": "OldDistributionCreator._isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32) (contracts/deprecated/OldDistributionCreator.sol#456-464) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- (distributionEpochStart + distribution.numEpoch * EPOCH_DURATION > roundedEpochStart && distributionEpochStart < roundedEpochEnd) (contracts/deprecated/OldDistributionCreator.sol#462-463)\n", "markdown": "[OldDistributionCreator._isDistributionLiveBetweenEpochs(DistributionParameters,uint32,uint32)](contracts/deprecated/OldDistributionCreator.sol#L456-L464) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [(distributionEpochStart + distribution.numEpoch * EPOCH_DURATION > roundedEpochStart && distributionEpochStart < roundedEpochEnd)](contracts/deprecated/OldDistributionCreator.sol#L462-L463)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L456-L464", "id": "083041abb34b510325ffd4e71aeee0a00d017d33262821ded9c03c7ff326c2b0", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 26471, "length": 1080, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32)"}}, {"type": "node", "name": "i < distributionListLength", "source_mapping": {"start": 26930, "length": 26, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [523], "starting_column": 24, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 26471, "length": 1080, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32)"}}}}, {"type": "node", "name": "_isDistributionLiveBetweenEpochs(distribution,epochStart,epochEnd) && (uniV3Pool == address(0) || distribution.uniV3Pool == uniV3Pool)", "source_mapping": {"start": 27073, "length": 152, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [526, 527], "starting_column": 17, "ending_column": 81}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 26471, "length": 1080, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32)"}}}}], "description": "OldDistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32) (contracts/deprecated/OldDistributionCreator.sol#513-540) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- i < distributionListLength (contracts/deprecated/OldDistributionCreator.sol#523)\n\t- _isDistributionLiveBetweenEpochs(distribution,epochStart,epochEnd) && (uniV3Pool == address(0) || distribution.uniV3Pool == uniV3Pool) (contracts/deprecated/OldDistributionCreator.sol#526-527)\n", "markdown": "[OldDistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32)](contracts/deprecated/OldDistributionCreator.sol#L513-L540) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [i < distributionListLength](contracts/deprecated/OldDistributionCreator.sol#L523)\n\t- [_isDistributionLiveBetweenEpochs(distribution,epochStart,epochEnd) && (uniV3Pool == address(0) || distribution.uniV3Pool == uniV3Pool)](contracts/deprecated/OldDistributionCreator.sol#L526-L527)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L513-L540", "id": "d34be50bb239745b416d42d1400f3b8f78e883b675e35a69d7a383b73e2b2739", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getMerkleRoot", "source_mapping": {"start": 9901, "length": 190, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [195, 196, 197, 198], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "getMerkleRoot()"}}, {"type": "node", "name": "block.timestamp - lastTreeUpdate >= disputePeriod", "source_mapping": {"start": 9970, "length": 49, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [196], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "getMerkleRoot", "source_mapping": {"start": 9901, "length": 190, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [195, 196, 197, 198], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "getMerkleRoot()"}}}}], "description": "OldDistributor.getMerkleRoot() (contracts/deprecated/OldDistributor.sol#195-198) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp - lastTreeUpdate >= disputePeriod (contracts/deprecated/OldDistributor.sol#196)\n", "markdown": "[OldDistributor.getMerkleRoot()](contracts/deprecated/OldDistributor.sol#L195-L198) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp - lastTreeUpdate >= disputePeriod](contracts/deprecated/OldDistributor.sol#L196)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L195-L198", "id": "473c33aa252b8d072a37dafc6a2020351101d2c6e5070975486878da5fd382f9", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "updateTree", "source_mapping": {"start": 10547, "length": 701, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "updateTree(MerkleTree)"}}, {"type": "node", "name": "disputer != address(0) || ((canUpdateMerkleRoot[msg.sender] != 1 || block.timestamp - lastTreeUpdate < disputePeriod) && ! core.isGovernorOrGuardian(msg.sender))", "source_mapping": {"start": 10630, "length": 375, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [212, 213, 214, 215, 216], "starting_column": 13, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "updateTree", "source_mapping": {"start": 10547, "length": 701, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "updateTree(MerkleTree)"}}}}], "description": "OldDistributor.updateTree(MerkleTree) (contracts/deprecated/OldDistributor.sol#210-223) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- disputer != address(0) || ((canUpdateMerkleRoot[msg.sender] != 1 || block.timestamp - lastTreeUpdate < disputePeriod) && ! core.isGovernorOrGuardian(msg.sender)) (contracts/deprecated/OldDistributor.sol#212-216)\n", "markdown": "[OldDistributor.updateTree(MerkleTree)](contracts/deprecated/OldDistributor.sol#L210-L223) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [disputer != address(0) || ((canUpdateMerkleRoot[msg.sender] != 1 || block.timestamp - lastTreeUpdate < disputePeriod) && ! core.isGovernorOrGuardian(msg.sender))](contracts/deprecated/OldDistributor.sol#L212-L216)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L210-L223", "id": "4dda6a55f0bb1c807da00a4377d96e45d2a7212217cd35d7532e4517018fd4e7", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}, {"type": "node", "name": "block.timestamp - lastTreeUpdate >= disputePeriod", "source_mapping": {"start": 11593, "length": 49, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [229], "starting_column": 13, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "disputeTree", "source_mapping": {"start": 11527, "length": 298, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [228, 229, 230, 231, 232, 233], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "disputeTree(string)"}}}}], "description": "OldDistributor.disputeTree(string) (contracts/deprecated/OldDistributor.sol#228-233) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp - lastTreeUpdate >= disputePeriod (contracts/deprecated/OldDistributor.sol#229)\n", "markdown": "[OldDistributor.disputeTree(string)](contracts/deprecated/OldDistributor.sol#L228-L233) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp - lastTreeUpdate >= disputePeriod](contracts/deprecated/OldDistributor.sol#L229)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L228-L233", "id": "a8ae51c0943036c450957e6afaf0d886e97529b454d8b4c9c055c37b2652ef3c", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "setDisputePeriod", "source_mapping": {"start": 13838, "length": 256, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [279, 280, 281, 282, 283], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputePeriod(uint48)"}}, {"type": "node", "name": "_disputePeriod > block.timestamp", "source_mapping": {"start": 13933, "length": 32, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [280], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputePeriod", "source_mapping": {"start": 13838, "length": 256, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [279, 280, 281, 282, 283], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputePeriod(uint48)"}}}}], "description": "OldDistributor.setDisputePeriod(uint48) (contracts/deprecated/OldDistributor.sol#279-283) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- _disputePeriod > block.timestamp (contracts/deprecated/OldDistributor.sol#280)\n", "markdown": "[OldDistributor.setDisputePeriod(uint48)](contracts/deprecated/OldDistributor.sol#L279-L283) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [_disputePeriod > block.timestamp](contracts/deprecated/OldDistributor.sol#L280)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L279-L283", "id": "218b5df46c4d42a356c74bd110f4f4e892b64f850f87f971c1354ddd5c866e49", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "notifyReward", "source_mapping": {"start": 7299, "length": 846, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerklGaugeMiddleman", "source_mapping": {"start": 4267, "length": 4150, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "notifyReward(address,uint256)"}}, {"type": "node", "name": "amount > creator.rewardTokenMinAmounts(address(angle())) * params.numEpoch", "source_mapping": {"start": 7819, "length": 74, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [124], "starting_column": 17, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "notifyReward", "source_mapping": {"start": 7299, "length": 846, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerklGaugeMiddleman", "source_mapping": {"start": 4267, "length": 4150, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "notifyReward(address,uint256)"}}}}], "description": "MerklGaugeMiddleman.notifyReward(address,uint256) (contracts/middleman/MerklGaugeMiddleman.sol#115-131) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- amount > creator.rewardTokenMinAmounts(address(angle())) * params.numEpoch (contracts/middleman/MerklGaugeMiddleman.sol#124)\n", "markdown": "[MerklGaugeMiddleman.notifyReward(address,uint256)](contracts/middleman/MerklGaugeMiddleman.sol#L115-L131) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [amount > creator.rewardTokenMinAmounts(address(angle())) * params.numEpoch](contracts/middleman/MerklGaugeMiddleman.sol#L124)\n", "first_markdown_element": "contracts/middleman/MerklGaugeMiddleman.sol#L115-L131", "id": "61a6860dd06c9e08345b379b2696b8ff97511b9aa0929303a2acc17acd9bc269", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}, {"type": "node", "name": "lastTimePaid == 0", "source_mapping": {"start": 6582, "length": 17, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [137], "starting_column": 13, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}, {"type": "node", "name": "weeksElapsed == 0", "source_mapping": {"start": 7151, "length": 17, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [148], "starting_column": 17, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}, {"type": "node", "name": "i < weeksElapsed", "source_mapping": {"start": 7405, "length": 16, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [155], "starting_column": 29, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "_distributeReward", "source_mapping": {"start": 6041, "length": 4213, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_distributeReward(address)"}}}}], "description": "AngleDistributor._distributeReward(address) (contracts/mock/AngleDistributor.sol#128-206) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- lastTimePaid == 0 (contracts/mock/AngleDistributor.sol#137)\n\t- weeksElapsed == 0 (contracts/mock/AngleDistributor.sol#148)\n\t- i < weeksElapsed (contracts/mock/AngleDistributor.sol#155)\n", "markdown": "[AngleDistributor._distributeReward(address)](contracts/mock/AngleDistributor.sol#L128-L206) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [lastTimePaid == 0](contracts/mock/AngleDistributor.sol#L137)\n\t- [weeksElapsed == 0](contracts/mock/AngleDistributor.sol#L148)\n\t- [i < weeksElapsed](contracts/mock/AngleDistributor.sol#L155)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L128-L206", "id": "322658943ae24d6b0a377d44a45fef737a3707dd33f1636857634ef80d371787", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_updateMiningParameters", "source_mapping": {"start": 11144, "length": 933, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_updateMiningParameters()"}}, {"type": "node", "name": "i < epochDelta", "source_mapping": {"start": 11690, "length": 14, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [237], "starting_column": 29, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "_updateMiningParameters", "source_mapping": {"start": 11144, "length": 933, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_updateMiningParameters()"}}}}], "description": "AngleDistributor._updateMiningParameters() (contracts/mock/AngleDistributor.sol#226-245) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- i < epochDelta (contracts/mock/AngleDistributor.sol#237)\n", "markdown": "[AngleDistributor._updateMiningParameters()](contracts/mock/AngleDistributor.sol#L226-L245) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [i < epochDelta](contracts/mock/AngleDistributor.sol#L237)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L226-L245", "id": "675b1f41c94d3e342fefc22f503c8d277f54ed2dc81c9f244a2ff8bc1b0b8d1f", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "distributeReward", "source_mapping": {"start": 13068, "length": 417, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [263, 264, 265, 266, 267, 268, 269, 270, 271], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeReward(address)"}}, {"type": "node", "name": "block.timestamp >= startEpochTime + RATE_REDUCTION_TIME", "source_mapping": {"start": 13327, "length": 55, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [267], "starting_column": 13, "ending_column": 68}, "type_specific_fields": {"parent": {"type": "function", "name": "distributeReward", "source_mapping": {"start": 13068, "length": 417, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [263, 264, 265, 266, 267, 268, 269, 270, 271], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeReward(address)"}}}}], "description": "AngleDistributor.distributeReward(address) (contracts/mock/AngleDistributor.sol#263-271) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp >= startEpochTime + RATE_REDUCTION_TIME (contracts/mock/AngleDistributor.sol#267)\n", "markdown": "[AngleDistributor.distributeReward(address)](contracts/mock/AngleDistributor.sol#L263-L271) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp >= startEpochTime + RATE_REDUCTION_TIME](contracts/mock/AngleDistributor.sol#L267)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L263-L271", "id": "6c8ff415a500bebeb0fbeb81a4ec8aaf361dd9851fba56d8f3c5ecbc87f1caa5", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "distributeRewardToMultipleGauges", "source_mapping": {"start": 13856, "length": 473, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeRewardToMultipleGauges(address[])"}}, {"type": "node", "name": "block.timestamp >= startEpochTime + RATE_REDUCTION_TIME", "source_mapping": {"start": 14110, "length": 55, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [282], "starting_column": 13, "ending_column": 68}, "type_specific_fields": {"parent": {"type": "function", "name": "distributeRewardToMultipleGauges", "source_mapping": {"start": 13856, "length": 473, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeRewardToMultipleGauges(address[])"}}}}], "description": "AngleDistributor.distributeRewardToMultipleGauges(address[]) (contracts/mock/AngleDistributor.sol#278-288) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp >= startEpochTime + RATE_REDUCTION_TIME (contracts/mock/AngleDistributor.sol#282)\n", "markdown": "[AngleDistributor.distributeRewardToMultipleGauges(address[])](contracts/mock/AngleDistributor.sol#L278-L288) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp >= startEpochTime + RATE_REDUCTION_TIME](contracts/mock/AngleDistributor.sol#L282)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L278-L288", "id": "150e19ae866b921049893b846d3a8be767186a702a33d01517530e70ef68e756", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "updateMiningParameters", "source_mapping": {"start": 14470, "length": 166, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [292, 293, 294, 295], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "updateMiningParameters()"}}, {"type": "node", "name": "require(bool,string)(block.timestamp >= startEpochTime + RATE_REDUCTION_TIME,108)", "source_mapping": {"start": 14523, "length": 71, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [293], "starting_column": 9, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "updateMiningParameters", "source_mapping": {"start": 14470, "length": 166, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [292, 293, 294, 295], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "updateMiningParameters()"}}}}], "description": "AngleDistributor.updateMiningParameters() (contracts/mock/AngleDistributor.sol#292-295) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp >= startEpochTime + RATE_REDUCTION_TIME,108) (contracts/mock/AngleDistributor.sol#293)\n", "markdown": "[AngleDistributor.updateMiningParameters()](contracts/mock/AngleDistributor.sol#L292-L295) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp >= startEpochTime + RATE_REDUCTION_TIME,108)](contracts/mock/AngleDistributor.sol#L293)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L292-L295", "id": "a8a97036421226893a8cdac5c06fed8c0215c1f44cfe9386f0c42842f48e9054", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "permit", "source_mapping": {"start": 1942, "length": 626, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Permit", "source_mapping": {"start": 865, "length": 2463, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 1, "ending_column": 2}}, "signature": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"}}, {"type": "node", "name": "require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline)", "source_mapping": {"start": 2150, "length": 69, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [58], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "permit", "source_mapping": {"start": 1942, "length": 626, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Permit", "source_mapping": {"start": 865, "length": 2463, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 1, "ending_column": 2}}, "signature": "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)"}}}}], "description": "ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#49-68) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline) (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#58)\n", "markdown": "[ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32)](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L49-L68) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline)](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L58)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L49-L68", "id": "0d5447a4211665cccb578b741e6f80459798e24ebc8afbe79fd37e3d4a29aaab", "check": "timestamp", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getValidRewardTokens", "source_mapping": {"start": 17742, "length": 778, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "getValidRewardTokens()"}}, {"type": "node", "name": "", "source_mapping": {"start": 18414, "length": 66, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [342, 343, 344], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getValidRewardTokens", "source_mapping": {"start": 17742, "length": 778, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "getValidRewardTokens()"}}}}], "description": "DistributionCreator.getValidRewardTokens() (contracts/DistributionCreator.sol#327-346) uses assembly\n\t- INLINE ASM (contracts/DistributionCreator.sol#342-344)\n", "markdown": "[DistributionCreator.getValidRewardTokens()](contracts/DistributionCreator.sol#L327-L346) uses assembly\n\t- [INLINE ASM](contracts/DistributionCreator.sol#L342-L344)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L327-L346", "id": "7027e81820e8b8f4b559613b6ad669f18e2fcc78e3d43ee696e2189f3d7d52f9", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 38043, "length": 62, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [751, 752, 753], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 36650, "length": 1496, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)"}}}}], "description": "DistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32) (contracts/DistributionCreator.sol#720-755) uses assembly\n\t- INLINE ASM (contracts/DistributionCreator.sol#751-753)\n", "markdown": "[DistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32,uint32,uint32)](contracts/DistributionCreator.sol#L720-L755) uses assembly\n\t- [INLINE ASM](contracts/DistributionCreator.sol#L751-L753)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L720-L755", "id": "168bfc7b7791bd6b411a03b92a417ecf66093c323b25fdbb77cb2cdbf5925943", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getValidRewardTokens", "source_mapping": {"start": 16023, "length": 778, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "getValidRewardTokens()"}}, {"type": "node", "name": "", "source_mapping": {"start": 16695, "length": 66, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [303, 304, 305], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getValidRewardTokens", "source_mapping": {"start": 16023, "length": 778, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "getValidRewardTokens()"}}}}], "description": "OldDistributionCreator.getValidRewardTokens() (contracts/deprecated/OldDistributionCreator.sol#288-307) uses assembly\n\t- INLINE ASM (contracts/deprecated/OldDistributionCreator.sol#303-305)\n", "markdown": "[OldDistributionCreator.getValidRewardTokens()](contracts/deprecated/OldDistributionCreator.sol#L288-L307) uses assembly\n\t- [INLINE ASM](contracts/deprecated/OldDistributionCreator.sol#L303-L305)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L288-L307", "id": "5daeaf0766fd79b8d79442f013a87f9ef66549ca4e74a5389d154f9b5573ef68", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 26471, "length": 1080, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 27453, "length": 62, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [536, 537, 538], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getPoolDistributionsBetweenEpochs", "source_mapping": {"start": 26471, "length": 1080, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "_getPoolDistributionsBetweenEpochs(address,uint32,uint32)"}}}}], "description": "OldDistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32) (contracts/deprecated/OldDistributionCreator.sol#513-540) uses assembly\n\t- INLINE ASM (contracts/deprecated/OldDistributionCreator.sol#536-538)\n", "markdown": "[OldDistributionCreator._getPoolDistributionsBetweenEpochs(address,uint32,uint32)](contracts/deprecated/OldDistributionCreator.sol#L513-L540) uses assembly\n\t- [INLINE ASM](contracts/deprecated/OldDistributionCreator.sol#L536-L538)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L513-L540", "id": "8d3158f9eb7346538ceeefac0630bf9bbdaf0b4fe74686fe8a33c7cac102f321", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_revert", "source_mapping": {"start": 7739, "length": 540, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes,string)"}}, {"type": "node", "name": "", "source_mapping": {"start": 8070, "length": 142, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [211, 212, 213, 214], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_revert", "source_mapping": {"start": 7739, "length": 540, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes,string)"}}}}], "description": "AddressUpgradeable._revert(bytes,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#206-218) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#211-214)\n", "markdown": "[AddressUpgradeable._revert(bytes,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L206-L218) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L211-L214)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L206-L218", "id": "13e9a3eeeac6d0c0e5a6302ecec3c1ae4904b685a5daeb35c93a4017791ab8ce", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getAddressSlot", "source_mapping": {"start": 1625, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getAddressSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 1762, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [54, 55, 56], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getAddressSlot", "source_mapping": {"start": 1625, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getAddressSlot(bytes32)"}}}}], "description": "StorageSlotUpgradeable.getAddressSlot(bytes32) (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#52-57) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#54-56)\n", "markdown": "[StorageSlotUpgradeable.getAddressSlot(bytes32)](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L52-L57) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L54-L56)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L52-L57", "id": "1dbd555be535b5e174c90b558257db0fb1eaa52ccf8cf5d011efdc87e5ecf3a5", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 1913, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2050, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [64, 65, 66], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 1913, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}}}], "description": "StorageSlotUpgradeable.getBooleanSlot(bytes32) (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#62-67) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#64-66)\n", "markdown": "[StorageSlotUpgradeable.getBooleanSlot(bytes32)](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L62-L67) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L64-L66)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L62-L67", "id": "695337d5f9e05e8ae512a25bebcef17c4789029a641d7d53a57346d085144b39", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2201, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2338, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [74, 75, 76], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2201, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}}}], "description": "StorageSlotUpgradeable.getBytes32Slot(bytes32) (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#72-77) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#74-76)\n", "markdown": "[StorageSlotUpgradeable.getBytes32Slot(bytes32)](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L72-L77) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L74-L76)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L72-L77", "id": "4719ddfea76da686a3129e04df1757f8531f9e220ffc949bd94d78bc0c06b9a9", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2489, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2626, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [84, 85, 86], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2489, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}}}], "description": "StorageSlotUpgradeable.getUint256Slot(bytes32) (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#82-87) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#84-86)\n", "markdown": "[StorageSlotUpgradeable.getUint256Slot(bytes32)](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L82-L87) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L84-L86)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L82-L87", "id": "dd663b7864d604a4289dc8fce8b16e968d79fcbdc7d6b3f17c6c66af5cd15c10", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "toString", "source_mapping": {"start": 437, "length": 707, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StringsUpgradeable", "source_mapping": {"start": 199, "length": 2098, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}, {"type": "node", "name": "", "source_mapping": {"start": 732, "length": 76, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [24, 25, 26], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "toString", "source_mapping": {"start": 437, "length": 707, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StringsUpgradeable", "source_mapping": {"start": 199, "length": 2098, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}}}, {"type": "node", "name": "", "source_mapping": {"start": 926, "length": 93, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [30, 31, 32], "starting_column": 17, "ending_column": 18}, "type_specific_fields": {"parent": {"type": "function", "name": "toString", "source_mapping": {"start": 437, "length": 707, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StringsUpgradeable", "source_mapping": {"start": 199, "length": 2098, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}}}], "description": "StringsUpgradeable.toString(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#18-38) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#24-26)\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#30-32)\n", "markdown": "[StringsUpgradeable.toString(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L18-L38) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L24-L26)\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L30-L32)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L18-L38", "id": "a1053456d5177d9320eadfaa0f496cfbbaacac036a56c283a977dd0f7832b5f3", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2280, "length": 166, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [66, 67, 68, 69, 70], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "", "source_mapping": {"start": 3015, "length": 300, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "", "source_mapping": {"start": 3683, "length": 371, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#66-70)\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#86-93)\n\t- INLINE ASM (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#100-109)\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L66-L70)\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L86-L93)\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L100-L109)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "f1d1fe9e046bfb0135ffabb5039805617515887b71f48a3cb6ce72c32a046efc", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}, {"type": "node", "name": "", "source_mapping": {"start": 1018, "length": 819, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "Proxy._delegate(address) (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#22-45) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#23-44)\n", "markdown": "[Proxy._delegate(address)](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L22-L45) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L23-L44)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L22-L45", "id": "ef6d54eb053868da4d539009e4080716f121c7c9b55aa887cceba1626df13e2b", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_revert", "source_mapping": {"start": 8616, "length": 540, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes,string)"}}, {"type": "node", "name": "", "source_mapping": {"start": 8947, "length": 142, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [236, 237, 238, 239], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_revert", "source_mapping": {"start": 8616, "length": 540, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes,string)"}}}}], "description": "Address._revert(bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#231-243) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Address.sol#236-239)\n", "markdown": "[Address._revert(bytes,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L231-L243) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/Address.sol#L236-L239)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L231-L243", "id": "d19576df04e54db180414187260180ffdb9985e84b4cac0842a3d9229fb61306", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getAddressSlot", "source_mapping": {"start": 1614, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getAddressSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 1751, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [54, 55, 56], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getAddressSlot", "source_mapping": {"start": 1614, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getAddressSlot(bytes32)"}}}}], "description": "StorageSlot.getAddressSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#52-57) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#54-56)\n", "markdown": "[StorageSlot.getAddressSlot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L52-L57) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L54-L56)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L52-L57", "id": "ae5966ccd4581432bdc29115c9e078779f9e083445b40d51d03d9e5f345f458e", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 1902, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2039, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [64, 65, 66], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 1902, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}}}], "description": "StorageSlot.getBooleanSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#62-67) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#64-66)\n", "markdown": "[StorageSlot.getBooleanSlot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L62-L67) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L64-L66)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L62-L67", "id": "39929c019b4fb5975c782545d2fb8a7976b0cfaa4a405ec05a0d10a2562ad2ea", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2190, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2327, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [74, 75, 76], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2190, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}}}], "description": "StorageSlot.getBytes32Slot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#72-77) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#74-76)\n", "markdown": "[StorageSlot.getBytes32Slot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L72-L77) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L74-L76)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L72-L77", "id": "d74ef54ea2863d72ae619da7d911216095d3b03e9a1346609ee1ae3da883bee9", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2478, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2615, "length": 47, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [84, 85, 86], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2478, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}}}], "description": "StorageSlot.getUint256Slot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#82-87) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#84-86)\n", "markdown": "[StorageSlot.getUint256Slot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L82-L87) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L84-L86)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L82-L87", "id": "369cffe68a3226eab48057abad49f21f03474628d4f247811dbddbdde881b3d1", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "toString", "source_mapping": {"start": 415, "length": 696, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Strings", "source_mapping": {"start": 188, "length": 2065, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}, {"type": "node", "name": "", "source_mapping": {"start": 699, "length": 76, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [24, 25, 26], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "toString", "source_mapping": {"start": 415, "length": 696, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Strings", "source_mapping": {"start": 188, "length": 2065, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}}}, {"type": "node", "name": "", "source_mapping": {"start": 893, "length": 93, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [30, 31, 32], "starting_column": 17, "ending_column": 18}, "type_specific_fields": {"parent": {"type": "function", "name": "toString", "source_mapping": {"start": 415, "length": 696, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Strings", "source_mapping": {"start": 188, "length": 2065, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}}}], "description": "Strings.toString(uint256) (node_modules/@openzeppelin/contracts/utils/Strings.sol#18-38) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Strings.sol#24-26)\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/Strings.sol#30-32)\n", "markdown": "[Strings.toString(uint256)](node_modules/@openzeppelin/contracts/utils/Strings.sol#L18-L38) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/Strings.sol#L24-L26)\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/Strings.sol#L30-L32)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Strings.sol#L18-L38", "id": "8e0fa33b71ed3c8a8523da984e10c6cefdb76c6a5db5845ddc82ff59e1d6b0be", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "tryRecover", "source_mapping": {"start": 2145, "length": 730, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ECDSA", "source_mapping": {"start": 369, "length": 8168, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 1, "ending_column": 2}}, "signature": "tryRecover(bytes32,bytes)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2546, "length": 180, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "tryRecover", "source_mapping": {"start": 2145, "length": 730, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ECDSA", "source_mapping": {"start": 369, "length": 8168, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 1, "ending_column": 2}}, "signature": "tryRecover(bytes32,bytes)"}}}}], "description": "ECDSA.tryRecover(bytes32,bytes) (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#55-72) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#63-67)\n", "markdown": "[ECDSA.tryRecover(bytes32,bytes)](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L55-L72) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L63-L67)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L55-L72", "id": "3eb7a628c5ca7b3b5072223cfdd908df023e5116396ef39a9def38860b28a78b", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2269, "length": 166, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [66, 67, 68, 69, 70], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "", "source_mapping": {"start": 3004, "length": 300, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}, {"type": "node", "name": "", "source_mapping": {"start": 3672, "length": 371, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [100, 101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) uses assembly\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#66-70)\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#86-93)\n\t- INLINE ASM (node_modules/@openzeppelin/contracts/utils/math/Math.sol#100-109)\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) uses assembly\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L66-L70)\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L86-L93)\n\t- [INLINE ASM](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L100-L109)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "683437b89a1bef3e678403bf7cebbe38c40123a8ef58447a3b059762966b59ff", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "distributeReward", "source_mapping": {"start": 13068, "length": 417, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [263, 264, 265, 266, 267, 268, 269, 270, 271], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeReward(address)"}}, {"type": "node", "name": "require(bool,string)(distributionsOn == true,109)", "source_mapping": {"start": 13214, "length": 39, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [265], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "distributeReward", "source_mapping": {"start": 13068, "length": 417, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [263, 264, 265, 266, 267, 268, 269, 270, 271], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeReward(address)"}}}}], "description": "AngleDistributor.distributeReward(address) (contracts/mock/AngleDistributor.sol#263-271) compares to a boolean constant:\n\t-require(bool,string)(distributionsOn == true,109) (contracts/mock/AngleDistributor.sol#265)\n", "markdown": "[AngleDistributor.distributeReward(address)](contracts/mock/AngleDistributor.sol#L263-L271) compares to a boolean constant:\n\t-[require(bool,string)(distributionsOn == true,109)](contracts/mock/AngleDistributor.sol#L265)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L263-L271", "id": "2bca74404da3b7c9ae5acf7c6d7d78d432a0b986929a1c85fb05dc6ce3fbc9f7", "check": "boolean-equal", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "distributeRewardToMultipleGauges", "source_mapping": {"start": 13856, "length": 473, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeRewardToMultipleGauges(address[])"}}, {"type": "node", "name": "require(bool,string)(distributionsOn == true,109)", "source_mapping": {"start": 13997, "length": 39, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [280], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "distributeRewardToMultipleGauges", "source_mapping": {"start": 13856, "length": 473, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "distributeRewardToMultipleGauges(address[])"}}}}], "description": "AngleDistributor.distributeRewardToMultipleGauges(address[]) (contracts/mock/AngleDistributor.sol#278-288) compares to a boolean constant:\n\t-require(bool,string)(distributionsOn == true,109) (contracts/mock/AngleDistributor.sol#280)\n", "markdown": "[AngleDistributor.distributeRewardToMultipleGauges(address[])](contracts/mock/AngleDistributor.sol#L278-L288) compares to a boolean constant:\n\t-[require(bool,string)(distributionsOn == true,109)](contracts/mock/AngleDistributor.sol#L280)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L278-L288", "id": "d6eda67d6d7420c466331e6bffd0781aaf0b31c7fff94d8f163cb7f6aa0f00a9", "check": "boolean-equal", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": ">=0.5.0", "source_mapping": {"start": 45, "length": 24, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", ">=", "0.5", ".0"]}}, {"type": "pragma", "name": ">=0.5.0", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/external/uniswap/IUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/uniswap/IUniswapV3Pool.sol", "filename_short": "contracts/interfaces/external/uniswap/IUniswapV3Pool.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", ">=", "0.5", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 115, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 112, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 106, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 105, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 103, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 102, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/access/Ownable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", "filename_short": "node_modules/@openzeppelin/contracts/access/Ownable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol", "filename_short": "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 105, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 106, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 110, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 128, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 115, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 86, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Context.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 87, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 105, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 112, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 103, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 192, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}, {"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/IAgToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/IAgToken.sol", "filename_short": "contracts/interfaces/IAgToken.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/ICore.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/ICore.sol", "filename_short": "contracts/interfaces/ICore.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/ITreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/ITreasury.sol", "filename_short": "contracts/interfaces/ITreasury.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/middleman/MerklGaugeMiddlemanPolygon.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddlemanPolygon.sol", "filename_short": "contracts/middleman/MerklGaugeMiddlemanPolygon.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/mock/MockCoreBorrow.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockCoreBorrow.sol", "filename_short": "contracts/mock/MockCoreBorrow.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 38, "length": 24, "filename_relative": "contracts/struct/DistributionParameters.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/struct/DistributionParameters.sol", "filename_short": "contracts/struct/DistributionParameters.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 38, "length": 24, "filename_relative": "contracts/struct/ExtensiveDistributionParameters.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/struct/ExtensiveDistributionParameters.sol", "filename_short": "contracts/struct/ExtensiveDistributionParameters.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 38, "length": 24, "filename_relative": "contracts/struct/RewardTokenAmounts.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/struct/RewardTokenAmounts.sol", "filename_short": "contracts/struct/RewardTokenAmounts.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/utils/Errors.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/utils/Errors.sol", "filename_short": "contracts/utils/Errors.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3621, "length": 24, "filename_relative": "contracts/utils/UUPSHelper.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/utils/UUPSHelper.sol", "filename_short": "contracts/utils/UUPSHelper.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}, {"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}, {"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}, {"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/AngleDistributorEvents.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributorEvents.sol", "filename_short": "contracts/mock/AngleDistributorEvents.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}, {"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Different versions of Solidity are used:\n\t- Version used: ['>=0.5.0', '^0.8.0', '^0.8.1', '^0.8.17', '^0.8.2', '^0.8.7']\n\t- >=0.5.0 (contracts/interfaces/external/algebra/IAlgebraPool.sol#2)\n\t- >=0.5.0 (contracts/interfaces/external/uniswap/IUniswapV3Pool.sol#3)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/access/Ownable.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/Counters.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/Strings.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#4)\n\t- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#5)\n\t- ^0.8.1 (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#4)\n\t- ^0.8.1 (node_modules/@openzeppelin/contracts/utils/Address.sol#4)\n\t- ^0.8.17 (contracts/DistributionCreator.sol#36)\n\t- ^0.8.17 (contracts/Distributor.sol#36)\n\t- ^0.8.17 (contracts/deprecated/OldDistributionCreator.sol#36)\n\t- ^0.8.17 (contracts/deprecated/OldDistributor.sol#36)\n\t- ^0.8.17 (contracts/external/ProxyAdmin.sol#3)\n\t- ^0.8.17 (contracts/external/TransparentUpgradeableProxy.sol#3)\n\t- ^0.8.17 (contracts/interfaces/IAgToken.sol#3)\n\t- ^0.8.17 (contracts/interfaces/ICore.sol#3)\n\t- ^0.8.17 (contracts/interfaces/ITreasury.sol#3)\n\t- ^0.8.17 (contracts/middleman/MerklGaugeMiddleman.sol#36)\n\t- ^0.8.17 (contracts/middleman/MerklGaugeMiddlemanPolygon.sol#3)\n\t- ^0.8.17 (contracts/mock/MockCoreBorrow.sol#3)\n\t- ^0.8.17 (contracts/mock/MockMerklGaugeMiddleman.sol#3)\n\t- ^0.8.17 (contracts/mock/MockTreasury.sol#3)\n\t- ^0.8.17 (contracts/struct/DistributionParameters.sol#3)\n\t- ^0.8.17 (contracts/struct/ExtensiveDistributionParameters.sol#3)\n\t- ^0.8.17 (contracts/struct/RewardTokenAmounts.sol#3)\n\t- ^0.8.17 (contracts/utils/Errors.sol#3)\n\t- ^0.8.17 (contracts/utils/UUPSHelper.sol#36)\n\t- ^0.8.2 (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#4)\n\t- ^0.8.2 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)\n\t- ^0.8.2 (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4)\n\t- ^0.8.7 (contracts/external/AccessControlUpgradeable.sol#3)\n\t- ^0.8.7 (contracts/interfaces/CoreModuleInterfaces.sol#3)\n\t- ^0.8.7 (contracts/mock/AngleDistributor.sol#3)\n\t- ^0.8.7 (contracts/mock/AngleDistributorEvents.sol#3)\n\t- ^0.8.7 (contracts/mock/MockPool.sol#3)\n\t- ^0.8.7 (contracts/mock/MockToken.sol#3)\n\t- ^0.8.7 (contracts/mock/MockTokenPermit.sol#3)\n\t- ^0.8.7 (contracts/mock/MockUniswapV3Pool.sol#3)\n", "markdown": "Different versions of Solidity are used:\n\t- Version used: ['>=0.5.0', '^0.8.0', '^0.8.1', '^0.8.17', '^0.8.2', '^0.8.7']\n\t- [>=0.5.0](contracts/interfaces/external/algebra/IAlgebraPool.sol#L2)\n\t- [>=0.5.0](contracts/interfaces/external/uniswap/IUniswapV3Pool.sol#L3)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/access/Ownable.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/Context.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/Counters.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/Strings.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L4)\n\t- [^0.8.0](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L5)\n\t- [^0.8.1](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L4)\n\t- [^0.8.1](node_modules/@openzeppelin/contracts/utils/Address.sol#L4)\n\t- [^0.8.17](contracts/DistributionCreator.sol#L36)\n\t- [^0.8.17](contracts/Distributor.sol#L36)\n\t- [^0.8.17](contracts/deprecated/OldDistributionCreator.sol#L36)\n\t- [^0.8.17](contracts/deprecated/OldDistributor.sol#L36)\n\t- [^0.8.17](contracts/external/ProxyAdmin.sol#L3)\n\t- [^0.8.17](contracts/external/TransparentUpgradeableProxy.sol#L3)\n\t- [^0.8.17](contracts/interfaces/IAgToken.sol#L3)\n\t- [^0.8.17](contracts/interfaces/ICore.sol#L3)\n\t- [^0.8.17](contracts/interfaces/ITreasury.sol#L3)\n\t- [^0.8.17](contracts/middleman/MerklGaugeMiddleman.sol#L36)\n\t- [^0.8.17](contracts/middleman/MerklGaugeMiddlemanPolygon.sol#L3)\n\t- [^0.8.17](contracts/mock/MockCoreBorrow.sol#L3)\n\t- [^0.8.17](contracts/mock/MockMerklGaugeMiddleman.sol#L3)\n\t- [^0.8.17](contracts/mock/MockTreasury.sol#L3)\n\t- [^0.8.17](contracts/struct/DistributionParameters.sol#L3)\n\t- [^0.8.17](contracts/struct/ExtensiveDistributionParameters.sol#L3)\n\t- [^0.8.17](contracts/struct/RewardTokenAmounts.sol#L3)\n\t- [^0.8.17](contracts/utils/Errors.sol#L3)\n\t- [^0.8.17](contracts/utils/UUPSHelper.sol#L36)\n\t- [^0.8.2](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4)\n\t- [^0.8.2](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L4)\n\t- [^0.8.2](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4)\n\t- [^0.8.7](contracts/external/AccessControlUpgradeable.sol#L3)\n\t- [^0.8.7](contracts/interfaces/CoreModuleInterfaces.sol#L3)\n\t- [^0.8.7](contracts/mock/AngleDistributor.sol#L3)\n\t- [^0.8.7](contracts/mock/AngleDistributorEvents.sol#L3)\n\t- [^0.8.7](contracts/mock/MockPool.sol#L3)\n\t- [^0.8.7](contracts/mock/MockToken.sol#L3)\n\t- [^0.8.7](contracts/mock/MockTokenPermit.sol#L3)\n\t- [^0.8.7](contracts/mock/MockUniswapV3Pool.sol#L3)\n", "first_markdown_element": "contracts/interfaces/external/algebra/IAlgebraPool.sol#L2", "id": "723df7f6e69f4011bc339726ac3db1f7100c340e47afe711a88cbe0821bb5fbf", "check": "pragma", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_nonReentrantBefore", "source_mapping": {"start": 2580, "length": 287, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [61, 62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "_nonReentrantBefore()"}}, {"type": "node", "name": "_status = _ENTERED", "source_mapping": {"start": 2842, "length": 18, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [66], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "_nonReentrantBefore", "source_mapping": {"start": 2580, "length": 287, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [61, 62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "_nonReentrantBefore()"}}}}], "description": "ReentrancyGuardUpgradeable._nonReentrantBefore() (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#61-67) has costly operations inside a loop:\n\t- _status = _ENTERED (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#66)\n", "markdown": "[ReentrancyGuardUpgradeable._nonReentrantBefore()](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L61-L67) has costly operations inside a loop:\n\t- [_status = _ENTERED](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L66)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L61-L67", "id": "fada7a713d7fcc24057a1dcae9746072be4ece47a37e1fb719e2f8a7c10f3d6a", "check": "costly-loop", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_nonReentrantAfter", "source_mapping": {"start": 2873, "length": 209, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [69, 70, 71, 72, 73], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "_nonReentrantAfter()"}}, {"type": "node", "name": "_status = _NOT_ENTERED", "source_mapping": {"start": 3053, "length": 22, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [72], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "_nonReentrantAfter", "source_mapping": {"start": 2873, "length": 209, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [69, 70, 71, 72, 73], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "_nonReentrantAfter()"}}}}], "description": "ReentrancyGuardUpgradeable._nonReentrantAfter() (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#69-73) has costly operations inside a loop:\n\t- _status = _NOT_ENTERED (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#72)\n", "markdown": "[ReentrancyGuardUpgradeable._nonReentrantAfter()](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L69-L73) has costly operations inside a loop:\n\t- [_status = _NOT_ENTERED](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L72)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L69-L73", "id": "b7be4c1dffefa50c7c5310a77f21ba55ed04c7b012fdabc57c2668f1d864daad", "check": "costly-loop", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__AccessControl_init", "source_mapping": {"start": 2014, "length": 102, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 1948, "length": 6156, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControl_init()"}}], "description": "AccessControlUpgradeable.__AccessControl_init() (contracts/external/AccessControlUpgradeable.sol#52-54) is never used and should be removed\n", "markdown": "[AccessControlUpgradeable.__AccessControl_init()](contracts/external/AccessControlUpgradeable.sol#L52-L54) is never used and should be removed\n", "first_markdown_element": "contracts/external/AccessControlUpgradeable.sol#L52-L54", "id": "33e2d65bb087d861303b3d42ca072b5ed673118f6dc0e2857d46e845b9ac0e1d", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__AccessControl_init_unchained", "source_mapping": {"start": 2122, "length": 65, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [56], "starting_column": 5, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 1948, "length": 6156, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControl_init_unchained()"}}], "description": "AccessControlUpgradeable.__AccessControl_init_unchained() (contracts/external/AccessControlUpgradeable.sol#56) is never used and should be removed\n", "markdown": "[AccessControlUpgradeable.__AccessControl_init_unchained()](contracts/external/AccessControlUpgradeable.sol#L56) is never used and should be removed\n", "first_markdown_element": "contracts/external/AccessControlUpgradeable.sol#L56", "id": "bfe68eab0d18ea802da36f6789764877f76ba9908bacb1a95e3a7de9c3cd321a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCall", "source_mapping": {"start": 3466, "length": 185, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCall(address,bytes)"}}], "description": "Address.functionCall(address,bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#85-87) is never used and should be removed\n", "markdown": "[Address.functionCall(address,bytes)](node_modules/@openzeppelin/contracts/utils/Address.sol#L85-L87) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L85-L87", "id": "fea5c9eedf61ab3f6f82d5652ccc5af6a58b82f13b03fdb9152af39708badca1", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4458, "length": 254, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [114, 115, 116, 117, 118, 119, 120], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256)"}}], "description": "Address.functionCallWithValue(address,bytes,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#114-120) is never used and should be removed\n", "markdown": "[Address.functionCallWithValue(address,bytes,uint256)](node_modules/@openzeppelin/contracts/utils/Address.sol#L114-L120) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L114-L120", "id": "1a011acfb8b1a4ba5c814ed2c6e65fe0e9a06cab5372a052ba509f504eeb55c8", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5583, "length": 197, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [145, 146, 147], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes)"}}], "description": "Address.functionStaticCall(address,bytes) (node_modules/@openzeppelin/contracts/utils/Address.sol#145-147) is never used and should be removed\n", "markdown": "[Address.functionStaticCall(address,bytes)](node_modules/@openzeppelin/contracts/utils/Address.sol#L145-L147) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L145-L147", "id": "965cf19414c2dfcc76c22ba9c520aae5df9f273448285f0a897561950984b0c0", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5964, "length": 326, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}], "description": "Address.functionStaticCall(address,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#155-162) is never used and should be removed\n", "markdown": "[Address.functionStaticCall(address,bytes,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L155-L162) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L155-L162", "id": "e9c2d2c2c167f9b14318ae4e28c7bf51d183c5de02877f31c7ce8596e3f4132c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 2412, "length": 312, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}], "description": "Address.sendValue(address,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#60-65) is never used and should be removed\n", "markdown": "[Address.sendValue(address,uint256)](node_modules/@openzeppelin/contracts/utils/Address.sol#L60-L65) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L60-L65", "id": "12a942d5be420eca31c018a0c7174f38ee974cb96fb40dd119447b534a3e53cc", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "verifyCallResult", "source_mapping": {"start": 8315, "length": 295, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "verifyCallResult(bool,bytes,string)"}}], "description": "Address.verifyCallResult(bool,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#219-229) is never used and should be removed\n", "markdown": "[Address.verifyCallResult(bool,bytes,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L219-L229) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L219-L229", "id": "04cea58413b7cafa4b855b75bfca0c0f05654ed55974a40e5e72ebf779e917c0", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCall", "source_mapping": {"start": 3477, "length": 185, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionCall(address,bytes)"}}], "description": "AddressUpgradeable.functionCall(address,bytes) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#85-87) is never used and should be removed\n", "markdown": "[AddressUpgradeable.functionCall(address,bytes)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L85-L87) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L85-L87", "id": "43bf124a2e0f6fdce96ee70a846df34103ce6ae801af22db3863a427b2c607fd", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCall", "source_mapping": {"start": 3884, "length": 223, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [95, 96, 97, 98, 99, 100, 101], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionCall(address,bytes,string)"}}], "description": "AddressUpgradeable.functionCall(address,bytes,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#95-101) is never used and should be removed\n", "markdown": "[AddressUpgradeable.functionCall(address,bytes,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L95-L101) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L95-L101", "id": "5f66074a40832285fcc83c25cca3088a737107da60d4a7a18cb03038e28868da", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4469, "length": 254, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [114, 115, 116, 117, 118, 119, 120], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256)"}}], "description": "AddressUpgradeable.functionCallWithValue(address,bytes,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#114-120) is never used and should be removed\n", "markdown": "[AddressUpgradeable.functionCallWithValue(address,bytes,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L114-L120) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L114-L120", "id": "052edcc3ec737f313b30cba7be2cab5b23d56ffeb4cc9e7dabecc308d67e05e7", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4971, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}], "description": "AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#128-137) is never used and should be removed\n", "markdown": "[AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L128-L137) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L128-L137", "id": "fdf46dfc766161fd09d722339ad6136961693904427d735b0996eeaab377eea2", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5594, "length": 197, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [145, 146, 147], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes)"}}], "description": "AddressUpgradeable.functionStaticCall(address,bytes) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#145-147) is never used and should be removed\n", "markdown": "[AddressUpgradeable.functionStaticCall(address,bytes)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L145-L147) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L145-L147", "id": "7ae93326befb6ff0785f93f799ebdeb7a53c178129f345f422bfb1a5cec54b9b", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5975, "length": 326, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}], "description": "AddressUpgradeable.functionStaticCall(address,bytes,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#155-162) is never used and should be removed\n", "markdown": "[AddressUpgradeable.functionStaticCall(address,bytes,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L155-L162) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L155-L162", "id": "d83164dd2aec9bb4db06fa88327673b7d9fc2e91856896bac8ebfeaff52f2b75", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 2423, "length": 312, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}], "description": "AddressUpgradeable.sendValue(address,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#60-65) is never used and should be removed\n", "markdown": "[AddressUpgradeable.sendValue(address,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L60-L65) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L60-L65", "id": "63e180e74374991eacc59cf2f8e3af1c48bcdd92fc67944d8d8e25035d710c32", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "verifyCallResultFromTarget", "source_mapping": {"start": 6589, "length": 628, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "verifyCallResultFromTarget(address,bool,bytes,string)"}}], "description": "AddressUpgradeable.verifyCallResultFromTarget(address,bool,bytes,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#170-186) is never used and should be removed\n", "markdown": "[AddressUpgradeable.verifyCallResultFromTarget(address,bool,bytes,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L170-L186) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L170-L186", "id": "fb0feac429f9b908ecbbef0a88c4fd90486ab92097f20d87e6dd3e77ba2f9fef", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_msgData", "source_mapping": {"start": 742, "length": 99, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Context.sol", "is_dependency": false, "lines": [21, 22, 23], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Context", "source_mapping": {"start": 608, "length": 235, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Context.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24], "starting_column": 1, "ending_column": 2}}, "signature": "_msgData()"}}], "description": "Context._msgData() (node_modules/@openzeppelin/contracts/utils/Context.sol#21-23) is never used and should be removed\n", "markdown": "[Context._msgData()](node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Context.sol#L21-L23", "id": "93bd23634a3bf022810e43138345cf58db61248a704a7d277c8ec3d68c3ad188", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "decrement", "source_mapping": {"start": 1074, "length": 229, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Counters", "source_mapping": {"start": 424, "length": 971, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43], "starting_column": 1, "ending_column": 2}}, "signature": "decrement(Counters.Counter)"}}], "description": "Counters.decrement(Counters.Counter) (node_modules/@openzeppelin/contracts/utils/Counters.sol#32-38) is never used and should be removed\n", "markdown": "[Counters.decrement(Counters.Counter)](node_modules/@openzeppelin/contracts/utils/Counters.sol#L32-L38) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Counters.sol#L32-L38", "id": "89f3ba68a14c3cbd5f7e3637d2de2f5abbdfd39b412ba434a7e9bb60b198fac6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "reset", "source_mapping": {"start": 1309, "length": 84, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "is_dependency": false, "lines": [40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Counters", "source_mapping": {"start": 424, "length": 971, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43], "starting_column": 1, "ending_column": 2}}, "signature": "reset(Counters.Counter)"}}], "description": "Counters.reset(Counters.Counter) (node_modules/@openzeppelin/contracts/utils/Counters.sol#40-42) is never used and should be removed\n", "markdown": "[Counters.reset(Counters.Counter)](node_modules/@openzeppelin/contracts/utils/Counters.sol#L40-L42) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Counters.sol#L40-L42", "id": "6fd64d86f7b66c9e23b6a9f5aab72295b889de7f30774149ccf555bdc55eb69e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "recover", "source_mapping": {"start": 4643, "length": 252, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [116, 117, 118, 119, 120, 121, 122, 123, 124], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ECDSA", "source_mapping": {"start": 369, "length": 8168, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 1, "ending_column": 2}}, "signature": "recover(bytes32,bytes32,bytes32)"}}], "description": "ECDSA.recover(bytes32,bytes32,bytes32) (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#116-124) is never used and should be removed\n", "markdown": "[ECDSA.recover(bytes32,bytes32,bytes32)](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L116-L124) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L116-L124", "id": "ebbee5cef7e660e059a94c714e1426db47a76dafea22bce0ded5aa0663c0b681", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toEthSignedMessageHash", "source_mapping": {"start": 7256, "length": 265, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [183, 184, 185, 186, 187], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ECDSA", "source_mapping": {"start": 369, "length": 8168, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 1, "ending_column": 2}}, "signature": "toEthSignedMessageHash(bytes32)"}}], "description": "ECDSA.toEthSignedMessageHash(bytes32) (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#183-187) is never used and should be removed\n", "markdown": "[ECDSA.toEthSignedMessageHash(bytes32)](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L183-L187) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L183-L187", "id": "683020b5a567d4850ef2e96e6bbd39879ec94e571d4db50ccd7ab675aac01cca", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "tryRecover", "source_mapping": {"start": 4142, "length": 336, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [101, 102, 103, 104, 105, 106, 107, 108, 109], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ECDSA", "source_mapping": {"start": 369, "length": 8168, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213], "starting_column": 1, "ending_column": 2}}, "signature": "tryRecover(bytes32,bytes32,bytes32)"}}], "description": "ECDSA.tryRecover(bytes32,bytes32,bytes32) (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#101-109) is never used and should be removed\n", "markdown": "[ECDSA.tryRecover(bytes32,bytes32,bytes32)](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L101-L109) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L101-L109", "id": "b0d7ee3ebce613a8c97c170f7ef1092de886013ffeb44095dcaa44c1cfb480f3", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getBeacon", "source_mapping": {"start": 5288, "length": 124, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [152, 153, 154], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_getBeacon()"}}], "description": "ERC1967Upgrade._getBeacon() (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#152-154) is never used and should be removed\n", "markdown": "[ERC1967Upgrade._getBeacon()](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L152-L154) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L152-L154", "id": "e2d0610716408007f9030d45556c35b67a0ed89ff6b07d3252dc13721b493ee7", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_setBeacon", "source_mapping": {"start": 5494, "length": 371, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [159, 160, 161, 162, 163, 164, 165, 166], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_setBeacon(address)"}}], "description": "ERC1967Upgrade._setBeacon(address) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#159-166) is never used and should be removed\n", "markdown": "[ERC1967Upgrade._setBeacon(address)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L159-L166) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L159-L166", "id": "b93c4ebe65ac9affe3e364b2d87acfcd8874bde817ae86611558513858a05873", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeBeaconToAndCall", "source_mapping": {"start": 6168, "length": 343, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeBeaconToAndCall(address,bytes,bool)"}}], "description": "ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#174-184) is never used and should be removed\n", "markdown": "[ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L174-L184) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L174-L184", "id": "37ef62788b6e990346dcf8112c812c8a185d766ecf77442f0ea573d494ecefe6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeToAndCallUUPS", "source_mapping": {"start": 2650, "length": 952, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 529, "length": 5984, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeToAndCallUUPS(address,bytes,bool)"}}], "description": "ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool) (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#81-99) is never used and should be removed\n", "markdown": "[ERC1967Upgrade._upgradeToAndCallUUPS(address,bytes,bool)](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L81-L99) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L81-L99", "id": "1bb2dbd117a0fffaebeba00d520d68b8e33b73deac296d9b36f695386733193e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__ERC1967Upgrade_init", "source_mapping": {"start": 677, "length": 66, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [21, 22], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC1967Upgrade_init()"}}], "description": "ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init() (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#21-22) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init()](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L21-L22) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L21-L22", "id": "b29188d2abc168318643832a451fd9efb9fa737fef9d2114254f0a06de0d2f8e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__ERC1967Upgrade_init_unchained", "source_mapping": {"start": 749, "length": 76, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [24, 25], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC1967Upgrade_init_unchained()"}}], "description": "ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#24-25) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained()](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L24-L25) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L24-L25", "id": "15534af9e7105bb3a103b45d260343d3ed15e133d88bf8292fb5a01b50d67e83", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_changeAdmin", "source_mapping": {"start": 4956, "length": 135, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [139, 140, 141, 142], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_changeAdmin(address)"}}], "description": "ERC1967UpgradeUpgradeable._changeAdmin(address) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#139-142) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable._changeAdmin(address)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L139-L142) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L139-L142", "id": "bcec1bd22b80065078207e21abc69688bff5d5f8a079c2a4991af7e2affb27cc", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getAdmin", "source_mapping": {"start": 4418, "length": 133, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [122, 123, 124], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_getAdmin()"}}], "description": "ERC1967UpgradeUpgradeable._getAdmin() (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#122-124) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable._getAdmin()](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L122-L124) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L122-L124", "id": "d696f60cb1e7125846e25cf8ce96063705fe631e7cb20d54ba332c1ce9299843", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getBeacon", "source_mapping": {"start": 5620, "length": 135, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [158, 159, 160], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_getBeacon()"}}], "description": "ERC1967UpgradeUpgradeable._getBeacon() (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#158-160) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable._getBeacon()](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L158-L160) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L158-L160", "id": "4805b8174d603930ed0e17ed50759a0d325583f8b236e577b90fb9af4b838f62", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_setAdmin", "source_mapping": {"start": 4633, "length": 212, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [129, 130, 131, 132], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_setAdmin(address)"}}], "description": "ERC1967UpgradeUpgradeable._setAdmin(address) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#129-132) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable._setAdmin(address)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L129-L132) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L129-L132", "id": "b4bdd2209818fa6b0097f7e2321d93feded9e1fffaec43dfbb4c3861da25bb5e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_setBeacon", "source_mapping": {"start": 5837, "length": 415, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [165, 166, 167, 168, 169, 170, 171, 172], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_setBeacon(address)"}}], "description": "ERC1967UpgradeUpgradeable._setBeacon(address) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#165-172) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable._setBeacon(address)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L165-L172) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L165-L172", "id": "9e4711082653ae560a2aa0525002dac9775f108dfea27ee80643633fee793a92", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeBeaconToAndCall", "source_mapping": {"start": 6555, "length": 347, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeBeaconToAndCall(address,bytes,bool)"}}], "description": "ERC1967UpgradeUpgradeable._upgradeBeaconToAndCall(address,bytes,bool) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#180-190) is never used and should be removed\n", "markdown": "[ERC1967UpgradeUpgradeable._upgradeBeaconToAndCall(address,bytes,bool)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L180-L190) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L180-L190", "id": "7d0d6378b053e92c2927b508f40d94e4d3e1da68621172c98aaabeba219352de", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_disableInitializers", "source_mapping": {"start": 5928, "length": 279, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [144, 145, 146, 147, 148, 149, 150], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Initializable", "source_mapping": {"start": 2383, "length": 4245, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_disableInitializers()"}}], "description": "Initializable._disableInitializers() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#144-150) is never used and should be removed\n", "markdown": "[Initializable._disableInitializers()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L144-L150) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L144-L150", "id": "dc2bed4bc2b5ab49fa436151b5fa17db48c2c63cc7e3fb5c6f7919c1c5b432a2", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_getInitializedVersion", "source_mapping": {"start": 6317, "length": 100, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [155, 156, 157], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Initializable", "source_mapping": {"start": 2383, "length": 4245, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_getInitializedVersion()"}}], "description": "Initializable._getInitializedVersion() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#155-157) is never used and should be removed\n", "markdown": "[Initializable._getInitializedVersion()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L155-L157) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L155-L157", "id": "c08d7be4b407d22e4451a143fa4042d32225368689a3638ea9cf7af2856c9eca", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_isInitializing", "source_mapping": {"start": 6533, "length": 93, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [162, 163, 164], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Initializable", "source_mapping": {"start": 2383, "length": 4245, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165], "starting_column": 1, "ending_column": 2}}, "signature": "_isInitializing()"}}], "description": "Initializable._isInitializing() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#162-164) is never used and should be removed\n", "markdown": "[Initializable._isInitializing()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L162-L164) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L162-L164", "id": "0452b3df4b35b1b064cd022e8c386577836b77074c5117cf1967f26b72ef458c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "average", "source_mapping": {"start": 805, "length": 153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "average(uint256,uint256)"}}], "description": "Math.average(uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#34-37) is never used and should be removed\n", "markdown": "[Math.average(uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L34-L37) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L34-L37", "id": "4da33cf1bcc5c409d2f9d3fb487d83c29cd2f6f93543c7afcd901cf60e03da1c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "ceilDiv", "source_mapping": {"start": 1157, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [45, 46, 47, 48], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "ceilDiv(uint256,uint256)"}}], "description": "Math.ceilDiv(uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#45-48) is never used and should be removed\n", "markdown": "[Math.ceilDiv(uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L45-L48) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L45-L48", "id": "164ad61a301e7b0081ffc862124761c3fcd9ce8f5f7ea1afc5f193b17837110b", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log10", "source_mapping": {"start": 10933, "length": 246, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [296, 297, 298, 299, 300, 301], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log10(uint256,Math.Rounding)"}}], "description": "Math.log10(uint256,Math.Rounding) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#296-301) is never used and should be removed\n", "markdown": "[Math.log10(uint256,Math.Rounding)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L296-L301) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L296-L301", "id": "25a64839ce59f3044cc6d1ea8394478a1f3c2b3303ddfe476317f95740cbe930", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log2", "source_mapping": {"start": 8383, "length": 983, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log2(uint256)"}}], "description": "Math.log2(uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#205-241) is never used and should be removed\n", "markdown": "[Math.log2(uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L205-L241) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L205-L241", "id": "4c8a4f9c143f01b305173e070c542696446c5c115b3bd617aadac99a50a77825", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log2", "source_mapping": {"start": 9519, "length": 245, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [247, 248, 249, 250, 251, 252], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log2(uint256,Math.Rounding)"}}], "description": "Math.log2(uint256,Math.Rounding) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#247-252) is never used and should be removed\n", "markdown": "[Math.log2(uint256,Math.Rounding)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L247-L252) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L247-L252", "id": "51e7bd826c781ad04d03775596fbb9b280bad0452bc7cd66cad65a495efb4f0f", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log256", "source_mapping": {"start": 11430, "length": 663, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log256(uint256)"}}], "description": "Math.log256(uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#309-333) is never used and should be removed\n", "markdown": "[Math.log256(uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L309-L333) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L309-L333", "id": "5e6e2187e6f5c054ad114c0c9c37b25c5aabbb7fdb56ba1f6c045dec8af082dd", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log256", "source_mapping": {"start": 12247, "length": 255, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [339, 340, 341, 342, 343, 344], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log256(uint256,Math.Rounding)"}}], "description": "Math.log256(uint256,Math.Rounding) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#339-344) is never used and should be removed\n", "markdown": "[Math.log256(uint256,Math.Rounding)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L339-L344) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L339-L344", "id": "72c99ceb1681c26a89070db2bc6ef76e142b427754debd0fda2b6039e5afe7a2", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "max", "source_mapping": {"start": 413, "length": 104, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [19, 20, 21], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "max(uint256,uint256)"}}], "description": "Math.max(uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#19-21) is never used and should be removed\n", "markdown": "[Math.max(uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L19-L21) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L19-L21", "id": "4a3177ea9490e6f46964b433de103f9dcaa115ecb608b38006eb2eca3751a08e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "min", "source_mapping": {"start": 588, "length": 104, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [26, 27, 28], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "min(uint256,uint256)"}}], "description": "Math.min(uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#26-28) is never used and should be removed\n", "markdown": "[Math.min(uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L26-L28) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L26-L28", "id": "df210544be1f043bb6be10867726d704a0432efec293dc574b7cb924ce11802a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1667, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}], "description": "Math.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#55-135) is never used and should be removed\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L55-L135", "id": "34ff01b24ca27acfe4c88eb34be5041d747d2045e5995f5cdccd5bee406e76cb", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 5724, "length": 337, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256,Math.Rounding)"}}], "description": "Math.mulDiv(uint256,uint256,uint256,Math.Rounding) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#140-151) is never used and should be removed\n", "markdown": "[Math.mulDiv(uint256,uint256,uint256,Math.Rounding)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L140-L151) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L140-L151", "id": "9df97b14748114f3ff3baef59657a561a8f4f08a435c0a3e4fa3ec9d9940b37f", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "sqrt", "source_mapping": {"start": 6280, "length": 1642, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "sqrt(uint256)"}}], "description": "Math.sqrt(uint256) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#158-189) is never used and should be removed\n", "markdown": "[Math.sqrt(uint256)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L158-L189) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L158-L189", "id": "786c13d6e0d71c1b74073ccfc139fdc4bad3963f9ed08f620e3e92a7889eae5a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "sqrt", "source_mapping": {"start": 8022, "length": 237, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [194, 195, 196, 197, 198, 199], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Math", "source_mapping": {"start": 202, "length": 12302, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "sqrt(uint256,Math.Rounding)"}}], "description": "Math.sqrt(uint256,Math.Rounding) (node_modules/@openzeppelin/contracts/utils/math/Math.sol#194-199) is never used and should be removed\n", "markdown": "[Math.sqrt(uint256,Math.Rounding)](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L194-L199) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L194-L199", "id": "499666321227957d60246c727b67eefee96706a51af7faa0d5eccb8f37fafe22", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "average", "source_mapping": {"start": 816, "length": 153, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "average(uint256,uint256)"}}], "description": "MathUpgradeable.average(uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#34-37) is never used and should be removed\n", "markdown": "[MathUpgradeable.average(uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L34-L37) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L34-L37", "id": "8ca26929590d445156664f5850f26ed17e062d415df0b9735657cad4100fcb02", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "ceilDiv", "source_mapping": {"start": 1168, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [45, 46, 47, 48], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "ceilDiv(uint256,uint256)"}}], "description": "MathUpgradeable.ceilDiv(uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#45-48) is never used and should be removed\n", "markdown": "[MathUpgradeable.ceilDiv(uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L45-L48) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L45-L48", "id": "0785ba91374f43d31157f3ebc471825b70bb13398dbe8cc0e82d056bca553c0b", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log10", "source_mapping": {"start": 9900, "length": 890, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log10(uint256)"}}], "description": "MathUpgradeable.log10(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#258-290) is never used and should be removed\n", "markdown": "[MathUpgradeable.log10(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L258-L290) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L258-L290", "id": "97157a6ca83b700c5fe46fbdb8f372b765cde1ac2e9f8f69e55c7ea9bd5e97aa", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log10", "source_mapping": {"start": 10944, "length": 246, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [296, 297, 298, 299, 300, 301], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log10(uint256,MathUpgradeable.Rounding)"}}], "description": "MathUpgradeable.log10(uint256,MathUpgradeable.Rounding) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#296-301) is never used and should be removed\n", "markdown": "[MathUpgradeable.log10(uint256,MathUpgradeable.Rounding)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L296-L301) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L296-L301", "id": "3f978548dc2087de7d230923a2433987fdf19ca7bf1728de1f2579d6d4bc533c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log2", "source_mapping": {"start": 8394, "length": 983, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log2(uint256)"}}], "description": "MathUpgradeable.log2(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#205-241) is never used and should be removed\n", "markdown": "[MathUpgradeable.log2(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L205-L241) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L205-L241", "id": "887939381b4890feb1b0f6b6630b51cd3ae556bd1b35029e17a00e0a3ae9276a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log2", "source_mapping": {"start": 9530, "length": 245, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [247, 248, 249, 250, 251, 252], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log2(uint256,MathUpgradeable.Rounding)"}}], "description": "MathUpgradeable.log2(uint256,MathUpgradeable.Rounding) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#247-252) is never used and should be removed\n", "markdown": "[MathUpgradeable.log2(uint256,MathUpgradeable.Rounding)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L247-L252) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L247-L252", "id": "03bd4cc25bca3b66e9d8ac547c21d8a0b68f16a96aec3b668669cb7028aaeab6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log256", "source_mapping": {"start": 11441, "length": 663, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log256(uint256)"}}], "description": "MathUpgradeable.log256(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#309-333) is never used and should be removed\n", "markdown": "[MathUpgradeable.log256(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L309-L333) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L309-L333", "id": "fc423054ea57156ce3b8a93b7635cacd6273ef568fb2ba0d23b9462a7b37f55c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "log256", "source_mapping": {"start": 12258, "length": 255, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [339, 340, 341, 342, 343, 344], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "log256(uint256,MathUpgradeable.Rounding)"}}], "description": "MathUpgradeable.log256(uint256,MathUpgradeable.Rounding) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#339-344) is never used and should be removed\n", "markdown": "[MathUpgradeable.log256(uint256,MathUpgradeable.Rounding)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L339-L344) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L339-L344", "id": "e07f03fb04378842af7e37517ed56f6903ed841f34a120a58ea56509ccc9c55e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "max", "source_mapping": {"start": 424, "length": 104, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [19, 20, 21], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "max(uint256,uint256)"}}], "description": "MathUpgradeable.max(uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#19-21) is never used and should be removed\n", "markdown": "[MathUpgradeable.max(uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L19-L21) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L19-L21", "id": "ecc0d29586c5ef9b5cb201987e8aba6e03fb7fdc25814fbac8092da6e0aa6d6a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "min", "source_mapping": {"start": 599, "length": 104, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [26, 27, 28], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "min(uint256,uint256)"}}], "description": "MathUpgradeable.min(uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#26-28) is never used and should be removed\n", "markdown": "[MathUpgradeable.min(uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L26-L28) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L26-L28", "id": "0c0e716ba71ab9de53a9004167614874b579f2d8efabe175deeca753c166eb3d", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 1678, "length": 3925, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256)"}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#55-135) is never used and should be removed\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L55-L135", "id": "54cc17dfc3b8ee6437a0a754f20f8d3ecae98cec90f7bf71b2a0d732b30b552e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "mulDiv", "source_mapping": {"start": 5735, "length": 337, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "mulDiv(uint256,uint256,uint256,MathUpgradeable.Rounding)"}}], "description": "MathUpgradeable.mulDiv(uint256,uint256,uint256,MathUpgradeable.Rounding) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#140-151) is never used and should be removed\n", "markdown": "[MathUpgradeable.mulDiv(uint256,uint256,uint256,MathUpgradeable.Rounding)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L140-L151) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L140-L151", "id": "b33792d5603d5c7a2814bc44630e51117e5eef351f0d6fe18809d11f8aa74307", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "sqrt", "source_mapping": {"start": 6291, "length": 1642, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "sqrt(uint256)"}}], "description": "MathUpgradeable.sqrt(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#158-189) is never used and should be removed\n", "markdown": "[MathUpgradeable.sqrt(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L158-L189) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L158-L189", "id": "1117fab403a72bd2b4c25135760944c13d0d2eb77106d5b2306a0bfbc360e702", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "sqrt", "source_mapping": {"start": 8033, "length": 237, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [194, 195, 196, 197, 198, 199], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MathUpgradeable", "source_mapping": {"start": 202, "length": 12313, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345], "starting_column": 1, "ending_column": 2}}, "signature": "sqrt(uint256,MathUpgradeable.Rounding)"}}], "description": "MathUpgradeable.sqrt(uint256,MathUpgradeable.Rounding) (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#194-199) is never used and should be removed\n", "markdown": "[MathUpgradeable.sqrt(uint256,MathUpgradeable.Rounding)](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L194-L199) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L194-L199", "id": "7f05dd54c2263222fce144aec656c190915f4be71a86111d25f64b7433cbda32", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__ReentrancyGuard_init", "source_mapping": {"start": 1868, "length": 111, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "__ReentrancyGuard_init()"}}], "description": "ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#40-42) is never used and should be removed\n", "markdown": "[ReentrancyGuardUpgradeable.__ReentrancyGuard_init()](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L40-L42) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L40-L42", "id": "793290cbe2db046e47cc2e4e3a01820acbd141c55f85bf8707a7755232bf3fac", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__ReentrancyGuard_init_unchained", "source_mapping": {"start": 1985, "length": 109, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [44, 45, 46], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "__ReentrancyGuard_init_unchained()"}}], "description": "ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#44-46) is never used and should be removed\n", "markdown": "[ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained()](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L44-L46) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L44-L46", "id": "d85ed51adb67f72e08a773494888bfabe9ab0f4901342589d2782f6a7ec5dd86", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt104", "source_mapping": {"start": 27778, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [901, 902, 903, 904], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt104(int256)"}}], "description": "SafeCast.toInt104(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#901-904) is never used and should be removed\n", "markdown": "[SafeCast.toInt104(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L901-L904) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L901-L904", "id": "2169d8214d1787e3d8147415390984581bd63b6710615a656766843810a7ec8e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt112", "source_mapping": {"start": 27219, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [883, 884, 885, 886], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt112(int256)"}}], "description": "SafeCast.toInt112(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#883-886) is never used and should be removed\n", "markdown": "[SafeCast.toInt112(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L883-L886) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L883-L886", "id": "7b822495e6c14cf2a3e6c3c2cee8aea599d627629fb4062759394f6cc5a9758c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt120", "source_mapping": {"start": 26660, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [865, 866, 867, 868], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt120(int256)"}}], "description": "SafeCast.toInt120(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#865-868) is never used and should be removed\n", "markdown": "[SafeCast.toInt120(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L865-L868) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L865-L868", "id": "46ecf792e9a16eadb91bf218fa70361bb80e65e97f160c49c5c3006294b6f627", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt128", "source_mapping": {"start": 26101, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [847, 848, 849, 850], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt128(int256)"}}], "description": "SafeCast.toInt128(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#847-850) is never used and should be removed\n", "markdown": "[SafeCast.toInt128(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L847-L850) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L847-L850", "id": "745d77997dff25684f2d3f7962cebdcbce22b43350eb24fae0846d46775e2e32", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt136", "source_mapping": {"start": 25542, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [829, 830, 831, 832], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt136(int256)"}}], "description": "SafeCast.toInt136(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#829-832) is never used and should be removed\n", "markdown": "[SafeCast.toInt136(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L829-L832) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L829-L832", "id": "f9879ce091440933d8974f65b0c25e8826f4ffd1d0ced675cdaaa11a28b53f8f", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt144", "source_mapping": {"start": 24983, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [811, 812, 813, 814], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt144(int256)"}}], "description": "SafeCast.toInt144(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#811-814) is never used and should be removed\n", "markdown": "[SafeCast.toInt144(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L811-L814) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L811-L814", "id": "4eaaf30b777e11f3662dd7aaa2f772acec2c203139ce6e562a32db3a0431fd51", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt152", "source_mapping": {"start": 24424, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [793, 794, 795, 796], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt152(int256)"}}], "description": "SafeCast.toInt152(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#793-796) is never used and should be removed\n", "markdown": "[SafeCast.toInt152(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L793-L796) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L793-L796", "id": "a145238dbc6837febac22d077112418671898f1d4640e2766baadfafcea401c1", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt16", "source_mapping": {"start": 33832, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1099, 1100, 1101, 1102], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt16(int256)"}}], "description": "SafeCast.toInt16(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1099-1102) is never used and should be removed\n", "markdown": "[SafeCast.toInt16(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1099-L1102) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1099-L1102", "id": "c08b8497e0155a3c10cd7662a27ed078f546688010b99b1fed53037b00c25596", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt160", "source_mapping": {"start": 23865, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [775, 776, 777, 778], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt160(int256)"}}], "description": "SafeCast.toInt160(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#775-778) is never used and should be removed\n", "markdown": "[SafeCast.toInt160(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L775-L778) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L775-L778", "id": "3b97d11f490cb53626c94ec2479ac17cc64b783a31e48b29c34fa2c8dc22918a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt168", "source_mapping": {"start": 23306, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [757, 758, 759, 760], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt168(int256)"}}], "description": "SafeCast.toInt168(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#757-760) is never used and should be removed\n", "markdown": "[SafeCast.toInt168(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L757-L760) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L757-L760", "id": "c0c80d99723bc780737ccfdaaac4212a6f68c2612b3361992b192abd06ad7b70", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt176", "source_mapping": {"start": 22747, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [739, 740, 741, 742], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt176(int256)"}}], "description": "SafeCast.toInt176(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#739-742) is never used and should be removed\n", "markdown": "[SafeCast.toInt176(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L739-L742) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L739-L742", "id": "a27a142db2acb03e7d92131b4bd9acfc8945f827719be0d07f0085e04960fc87", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt184", "source_mapping": {"start": 22188, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [721, 722, 723, 724], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt184(int256)"}}], "description": "SafeCast.toInt184(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#721-724) is never used and should be removed\n", "markdown": "[SafeCast.toInt184(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L721-L724) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L721-L724", "id": "473f08ee8f144da722d85e96d7a3d3566065f0b8c07fe007e6bee8b33612f1a8", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt192", "source_mapping": {"start": 21629, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [703, 704, 705, 706], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt192(int256)"}}], "description": "SafeCast.toInt192(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#703-706) is never used and should be removed\n", "markdown": "[SafeCast.toInt192(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L703-L706) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L703-L706", "id": "ff9750d49f57a509b6358309659367ca738ee6087255c094676fa19f19800885", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt200", "source_mapping": {"start": 21070, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [685, 686, 687, 688], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt200(int256)"}}], "description": "SafeCast.toInt200(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#685-688) is never used and should be removed\n", "markdown": "[SafeCast.toInt200(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L685-L688) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L685-L688", "id": "517397da353c9b652b3aa22ad296794d0f0f3e4fe0491fbcb199cfb7a656baad", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt208", "source_mapping": {"start": 20511, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [667, 668, 669, 670], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt208(int256)"}}], "description": "SafeCast.toInt208(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#667-670) is never used and should be removed\n", "markdown": "[SafeCast.toInt208(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L667-L670) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L667-L670", "id": "53961047875926eda8b672819950d9603ff071bdca3cd20da353b9dbe25ac22b", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt216", "source_mapping": {"start": 19952, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [649, 650, 651, 652], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt216(int256)"}}], "description": "SafeCast.toInt216(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#649-652) is never used and should be removed\n", "markdown": "[SafeCast.toInt216(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L649-L652) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L649-L652", "id": "31bf24b1bdd06273cf0f5dd2a058c337035f2506cb57830efdf96592ed74616b", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt224", "source_mapping": {"start": 19393, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [631, 632, 633, 634], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt224(int256)"}}], "description": "SafeCast.toInt224(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#631-634) is never used and should be removed\n", "markdown": "[SafeCast.toInt224(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L631-L634) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L631-L634", "id": "536d814482e68069a7095e51456b44dd2efb9686c304fd3ea3615d0e850f5479", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt232", "source_mapping": {"start": 18834, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [613, 614, 615, 616], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt232(int256)"}}], "description": "SafeCast.toInt232(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#613-616) is never used and should be removed\n", "markdown": "[SafeCast.toInt232(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L613-L616) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L613-L616", "id": "9a3bea8b4bbfe8702b76e1ef5b38b05d09e51132edf6329602c19029d34518f5", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt24", "source_mapping": {"start": 33282, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1081, 1082, 1083, 1084], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt24(int256)"}}], "description": "SafeCast.toInt24(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1081-1084) is never used and should be removed\n", "markdown": "[SafeCast.toInt24(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1081-L1084) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1081-L1084", "id": "29fa82780b3b3d4a20aa9f297f09581cde250ad0acdf26c0c4e66c334849745c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt240", "source_mapping": {"start": 18275, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [595, 596, 597, 598], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt240(int256)"}}], "description": "SafeCast.toInt240(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#595-598) is never used and should be removed\n", "markdown": "[SafeCast.toInt240(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L595-L598) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L595-L598", "id": "4b4507a19bca7cbf875bcc3c7bb1f63ca9e9a0f43b36b5881a87d89e39f66439", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt248", "source_mapping": {"start": 17716, "length": 198, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [577, 578, 579, 580], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt248(int256)"}}], "description": "SafeCast.toInt248(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#577-580) is never used and should be removed\n", "markdown": "[SafeCast.toInt248(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L577-L580) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L577-L580", "id": "3383df39323aadd4edb4614b81b8bf96ae7668948a5d2dac397a51030d800b32", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt256", "source_mapping": {"start": 34781, "length": 297, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1131, 1132, 1133, 1134, 1135], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt256(uint256)"}}], "description": "SafeCast.toInt256(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1131-1135) is never used and should be removed\n", "markdown": "[SafeCast.toInt256(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1131-L1135) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1131-L1135", "id": "3665311eb1c42c46f1768f0fa55819c418ca47d3363289d87aeab1510537e989", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt32", "source_mapping": {"start": 32732, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1063, 1064, 1065, 1066], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt32(int256)"}}], "description": "SafeCast.toInt32(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1063-1066) is never used and should be removed\n", "markdown": "[SafeCast.toInt32(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1063-L1066) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1063-L1066", "id": "7b56a13a89018df0d2414d061324212eaf3c495e1b37acfbb66e3c42bbd4391c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt40", "source_mapping": {"start": 32182, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1045, 1046, 1047, 1048], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt40(int256)"}}], "description": "SafeCast.toInt40(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1045-1048) is never used and should be removed\n", "markdown": "[SafeCast.toInt40(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1045-L1048) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1045-L1048", "id": "519e4b242d47df1fecc19b558eb52550e434b4d77815e068f4ce1be997cd9262", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt48", "source_mapping": {"start": 31632, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1027, 1028, 1029, 1030], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt48(int256)"}}], "description": "SafeCast.toInt48(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1027-1030) is never used and should be removed\n", "markdown": "[SafeCast.toInt48(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1027-L1030) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1027-L1030", "id": "a3fa947e52f1f2100eab694501c61548ca1d22c83d6c901c9b286cdf106ea3b6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt56", "source_mapping": {"start": 31082, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1009, 1010, 1011, 1012], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt56(int256)"}}], "description": "SafeCast.toInt56(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1009-1012) is never used and should be removed\n", "markdown": "[SafeCast.toInt56(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1009-L1012) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1009-L1012", "id": "9783f05f4191749d178e2c18b5f4ecfb63db95033f9c92ac8bfd39a49218ef14", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt64", "source_mapping": {"start": 30532, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [991, 992, 993, 994], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt64(int256)"}}], "description": "SafeCast.toInt64(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#991-994) is never used and should be removed\n", "markdown": "[SafeCast.toInt64(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L991-L994) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L991-L994", "id": "8d48e6380ea7c4adcf02b895c6c57395b1578c8712d7e8f188c011b230edc38c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt72", "source_mapping": {"start": 29982, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [973, 974, 975, 976], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt72(int256)"}}], "description": "SafeCast.toInt72(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#973-976) is never used and should be removed\n", "markdown": "[SafeCast.toInt72(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L973-L976) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L973-L976", "id": "e83b74d8145e5037b888d11ef38a1cf8f8d9d9c856963ec79503384645187848", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt8", "source_mapping": {"start": 34377, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [1117, 1118, 1119, 1120], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt8(int256)"}}], "description": "SafeCast.toInt8(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#1117-1120) is never used and should be removed\n", "markdown": "[SafeCast.toInt8(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1117-L1120) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L1117-L1120", "id": "a2bca791c4d2d0ba907f22cef8132c4ee4818be7dabde1ce1526320d2aa14fe8", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt80", "source_mapping": {"start": 29432, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [955, 956, 957, 958], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt80(int256)"}}], "description": "SafeCast.toInt80(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#955-958) is never used and should be removed\n", "markdown": "[SafeCast.toInt80(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L955-L958) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L955-L958", "id": "4af70444a208348c11d1a8a78b695808bda8d78322e25c7c2935ed2c426f2385", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt88", "source_mapping": {"start": 28882, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [937, 938, 939, 940], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt88(int256)"}}], "description": "SafeCast.toInt88(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#937-940) is never used and should be removed\n", "markdown": "[SafeCast.toInt88(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L937-L940) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L937-L940", "id": "59b87cd57f5c4ae0b8c4a3add658c097d521b621f22c8ff5bba4089bfd80f01f", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toInt96", "source_mapping": {"start": 28332, "length": 194, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [919, 920, 921, 922], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toInt96(int256)"}}], "description": "SafeCast.toInt96(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#919-922) is never used and should be removed\n", "markdown": "[SafeCast.toInt96(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L919-L922) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L919-L922", "id": "1866490c394aa667ddb2e8c8944fc3186f2cfe6f3782814fe1b2619f3ad9ed51", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint104", "source_mapping": {"start": 10651, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [341, 342, 343, 344], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint104(uint256)"}}], "description": "SafeCast.toUint104(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#341-344) is never used and should be removed\n", "markdown": "[SafeCast.toUint104(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L341-L344) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L341-L344", "id": "97b5d4a9e6442bba42bbb9103a8b9dcc58dad8e1c060c969a2ee625c6b86eba2", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint112", "source_mapping": {"start": 10130, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [324, 325, 326, 327], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint112(uint256)"}}], "description": "SafeCast.toUint112(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#324-327) is never used and should be removed\n", "markdown": "[SafeCast.toUint112(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L324-L327) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L324-L327", "id": "22a556973a1b4181d169ca131b4b69bcc7c991b92df5c3282352684438d9da65", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint120", "source_mapping": {"start": 9609, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [307, 308, 309, 310], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint120(uint256)"}}], "description": "SafeCast.toUint120(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#307-310) is never used and should be removed\n", "markdown": "[SafeCast.toUint120(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L307-L310) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L307-L310", "id": "f4b67e5e7ef8f3ee1b4dd6dc9eb4e79288f02a70aac5b281202517d7b0f278fe", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint128", "source_mapping": {"start": 9088, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [290, 291, 292, 293], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint128(uint256)"}}], "description": "SafeCast.toUint128(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#290-293) is never used and should be removed\n", "markdown": "[SafeCast.toUint128(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L290-L293) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L290-L293", "id": "4adc058f13a85200ccc3f0fbd7f4ec55348625481b13ee3473d0af0acaf61523", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint136", "source_mapping": {"start": 8567, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [273, 274, 275, 276], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint136(uint256)"}}], "description": "SafeCast.toUint136(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#273-276) is never used and should be removed\n", "markdown": "[SafeCast.toUint136(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L273-L276) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L273-L276", "id": "f8fb9763f582c2bc22c2104ba18dcd6452d304f45fd7ca99ae3255437be4f9be", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint144", "source_mapping": {"start": 8046, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [256, 257, 258, 259], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint144(uint256)"}}], "description": "SafeCast.toUint144(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#256-259) is never used and should be removed\n", "markdown": "[SafeCast.toUint144(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L256-L259) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L256-L259", "id": "43768d07a256993d99068b2d7dbeb7d1379fae39d8726c31ef111bac91b1a2bc", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint152", "source_mapping": {"start": 7525, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [239, 240, 241, 242], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint152(uint256)"}}], "description": "SafeCast.toUint152(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#239-242) is never used and should be removed\n", "markdown": "[SafeCast.toUint152(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L239-L242) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L239-L242", "id": "98b7e07741339ec7af9cd9e46c340e0dc0963f8a9c836b8f2d68ea7625b58598", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint16", "source_mapping": {"start": 16288, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [528, 529, 530, 531], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint16(uint256)"}}], "description": "SafeCast.toUint16(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#528-531) is never used and should be removed\n", "markdown": "[SafeCast.toUint16(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L528-L531) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L528-L531", "id": "c00100806969b1d68816ba692c841c37e74cfe622d2f76e628e1c80ff4a4d918", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint160", "source_mapping": {"start": 7004, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [222, 223, 224, 225], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint160(uint256)"}}], "description": "SafeCast.toUint160(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#222-225) is never used and should be removed\n", "markdown": "[SafeCast.toUint160(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L222-L225) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L222-L225", "id": "bbc376a0b200df4eedc1b19c28937c4206525db7723a6d291f5494ed40a75c2d", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint168", "source_mapping": {"start": 6483, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [205, 206, 207, 208], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint168(uint256)"}}], "description": "SafeCast.toUint168(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#205-208) is never used and should be removed\n", "markdown": "[SafeCast.toUint168(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L205-L208) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L205-L208", "id": "30cb563f9393571d5ba6f35a840256866a87083369fa01b4aae53d1ad0b5ee62", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint176", "source_mapping": {"start": 5962, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [188, 189, 190, 191], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint176(uint256)"}}], "description": "SafeCast.toUint176(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#188-191) is never used and should be removed\n", "markdown": "[SafeCast.toUint176(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L188-L191) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L188-L191", "id": "c699e95928afa98f6d7dae43704f5762eb3bdee65c683f7a370cd3cb440f5812", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint184", "source_mapping": {"start": 5441, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [171, 172, 173, 174], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint184(uint256)"}}], "description": "SafeCast.toUint184(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#171-174) is never used and should be removed\n", "markdown": "[SafeCast.toUint184(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L171-L174) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L171-L174", "id": "b6a3d000e6c3ffa541d8e117933cc4c2b0bd94f23ba3fbdb56b13027fd192fbe", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint192", "source_mapping": {"start": 4920, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [154, 155, 156, 157], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint192(uint256)"}}], "description": "SafeCast.toUint192(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#154-157) is never used and should be removed\n", "markdown": "[SafeCast.toUint192(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L154-L157) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L154-L157", "id": "a58817106609cc19d803c82f763c6c03d7491c966f5bb31aacd32b244884c63a", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint200", "source_mapping": {"start": 4399, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [137, 138, 139, 140], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint200(uint256)"}}], "description": "SafeCast.toUint200(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#137-140) is never used and should be removed\n", "markdown": "[SafeCast.toUint200(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L137-L140) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L137-L140", "id": "a9b6ea793b926fa4b209f71280aa7ec3e37860c7232ca44d7b8f47b73ed278f6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint216", "source_mapping": {"start": 3357, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [103, 104, 105, 106], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint216(uint256)"}}], "description": "SafeCast.toUint216(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#103-106) is never used and should be removed\n", "markdown": "[SafeCast.toUint216(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L103-L106) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L103-L106", "id": "09888c584d904e9f6e55c0ad2773edfb09b4b8c48350eeb786430d3d55d1d5a8", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint224", "source_mapping": {"start": 2836, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [86, 87, 88, 89], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint224(uint256)"}}], "description": "SafeCast.toUint224(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#86-89) is never used and should be removed\n", "markdown": "[SafeCast.toUint224(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L86-L89) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L86-L89", "id": "9a92bde97f6ced6ac63a2ad09904607725aa2fdb98a89abbda77571b9746920d", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint232", "source_mapping": {"start": 2315, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [69, 70, 71, 72], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint232(uint256)"}}], "description": "SafeCast.toUint232(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#69-72) is never used and should be removed\n", "markdown": "[SafeCast.toUint232(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L69-L72) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L69-L72", "id": "8c6699c30ae39985ec74c40d313925fde062961ea4018de22226c819cb93578f", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint24", "source_mapping": {"start": 15776, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [511, 512, 513, 514], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint24(uint256)"}}], "description": "SafeCast.toUint24(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#511-514) is never used and should be removed\n", "markdown": "[SafeCast.toUint24(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L511-L514) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L511-L514", "id": "6eb89c6fa0e583a11a089c2e5322156dae74e5d4b785e825f0c72e9586169cd6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint240", "source_mapping": {"start": 1794, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [52, 53, 54, 55], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint240(uint256)"}}], "description": "SafeCast.toUint240(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#52-55) is never used and should be removed\n", "markdown": "[SafeCast.toUint240(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L52-L55) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L52-L55", "id": "0eb3a8b89a9d7ebc2c912df31a45acc14bec9465ecc3244380d6027151809c6f", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint248", "source_mapping": {"start": 1273, "length": 192, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint248(uint256)"}}], "description": "SafeCast.toUint248(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#35-38) is never used and should be removed\n", "markdown": "[SafeCast.toUint248(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L35-L38) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L35-L38", "id": "0ad0ed115ab7aa989c7a0ec75b1193788f1c6121168211c796dba82f40ab7f28", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint256", "source_mapping": {"start": 17187, "length": 168, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [559, 560, 561, 562], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint256(int256)"}}], "description": "SafeCast.toUint256(int256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#559-562) is never used and should be removed\n", "markdown": "[SafeCast.toUint256(int256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L559-L562) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L559-L562", "id": "312ba3a523344dfbe6cb415462f41bf9a86b22a8986b59fa59f87789a49133a3", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint32", "source_mapping": {"start": 15264, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [494, 495, 496, 497], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint32(uint256)"}}], "description": "SafeCast.toUint32(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#494-497) is never used and should be removed\n", "markdown": "[SafeCast.toUint32(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L494-L497) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L494-L497", "id": "f0ec3f515510166aeae99efff4e8131cfb64918130ddc8821ffe3bc4a04adb9d", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint40", "source_mapping": {"start": 14752, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [477, 478, 479, 480], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint40(uint256)"}}], "description": "SafeCast.toUint40(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#477-480) is never used and should be removed\n", "markdown": "[SafeCast.toUint40(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L477-L480) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L477-L480", "id": "51f9813b620505614621fa46ffa709e6ff61d2938732586ce35284e4cbfad2a8", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint48", "source_mapping": {"start": 14240, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [460, 461, 462, 463], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint48(uint256)"}}], "description": "SafeCast.toUint48(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#460-463) is never used and should be removed\n", "markdown": "[SafeCast.toUint48(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L460-L463) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L460-L463", "id": "c70ad919f08311deac146910f2e696e0a0bf625b6fb9d74fb5587f1c31ca7d69", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint56", "source_mapping": {"start": 13728, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [443, 444, 445, 446], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint56(uint256)"}}], "description": "SafeCast.toUint56(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#443-446) is never used and should be removed\n", "markdown": "[SafeCast.toUint56(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L443-L446) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L443-L446", "id": "dcfee7857239be821cc4c201f9e1111b59394632348633fab58540b4905d21d6", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint64", "source_mapping": {"start": 13216, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [426, 427, 428, 429], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint64(uint256)"}}], "description": "SafeCast.toUint64(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#426-429) is never used and should be removed\n", "markdown": "[SafeCast.toUint64(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L426-L429) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L426-L429", "id": "2acb31b291279fdb031c1841badf5a3ac22378c01daea7dcb8f2b0489eef491c", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint72", "source_mapping": {"start": 12704, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [409, 410, 411, 412], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint72(uint256)"}}], "description": "SafeCast.toUint72(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#409-412) is never used and should be removed\n", "markdown": "[SafeCast.toUint72(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L409-L412) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L409-L412", "id": "565a7a3e2eb1c43c24966aea488375faaf76876f7b293186da12fed2bee33eb4", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint8", "source_mapping": {"start": 16796, "length": 182, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [545, 546, 547, 548], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint8(uint256)"}}], "description": "SafeCast.toUint8(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#545-548) is never used and should be removed\n", "markdown": "[SafeCast.toUint8(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L545-L548) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L545-L548", "id": "691a2668bfa3df29d4761b0ab744c294ca3916734ee65aa008217c63a4a49b42", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint80", "source_mapping": {"start": 12192, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [392, 393, 394, 395], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint80(uint256)"}}], "description": "SafeCast.toUint80(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#392-395) is never used and should be removed\n", "markdown": "[SafeCast.toUint80(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L392-L395) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L392-L395", "id": "0b15523497f40d70d20e0311b1e81395c292b0f81cc24f495fc3951a9d3f6334", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint88", "source_mapping": {"start": 11680, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [375, 376, 377, 378], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint88(uint256)"}}], "description": "SafeCast.toUint88(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#375-378) is never used and should be removed\n", "markdown": "[SafeCast.toUint88(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L375-L378) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L375-L378", "id": "dd2446afdc5ccefa07736f15da8223e1d4414e461ccc9f537b277269706f26ed", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toUint96", "source_mapping": {"start": 11168, "length": 187, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [358, 359, 360, 361], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeCast", "source_mapping": {"start": 927, "length": 34153, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136], "starting_column": 1, "ending_column": 2}}, "signature": "toUint96(uint256)"}}], "description": "SafeCast.toUint96(uint256) (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#358-361) is never used and should be removed\n", "markdown": "[SafeCast.toUint96(uint256)](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L358-L361) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L358-L361", "id": "ad2f3317a8c8018dc525fd889d5dcd1a6f73f72fb796206b2f87c1902ceb1d4e", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "safeDecreaseAllowance", "source_mapping": {"start": 2400, "length": 486, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeERC20", "source_mapping": {"start": 707, "length": 3748, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "safeDecreaseAllowance(IERC20,address,uint256)"}}], "description": "SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#70-81) is never used and should be removed\n", "markdown": "[SafeERC20.safeDecreaseAllowance(IERC20,address,uint256)](node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L70-L81) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L70-L81", "id": "d1902b0a6fe0c2ac94b15a9a66745dcce651c612cae4f84aa7dc2e91f6c6dfb1", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "safePermit", "source_mapping": {"start": 2892, "length": 472, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "SafeERC20", "source_mapping": {"start": 707, "length": 3748, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "safePermit(IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32)"}}], "description": "SafeERC20.safePermit(IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32) (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#83-97) is never used and should be removed\n", "markdown": "[SafeERC20.safePermit(IERC20Permit,address,address,uint256,uint256,uint8,bytes32,bytes32)](node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L83-L97) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L83-L97", "id": "601c8bfa0ae17df740ceb22e6f41e755f4f2dbaa7c4df9b1d6b99497de8b7804", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 1902, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}], "description": "StorageSlot.getBooleanSlot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#62-67) is never used and should be removed\n", "markdown": "[StorageSlot.getBooleanSlot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L62-L67) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L62-L67", "id": "cd200c1fd59c89fcb512fe3922acf6d4666d481946351b38843b8c2168977d50", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2190, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}], "description": "StorageSlot.getBytes32Slot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#72-77) is never used and should be removed\n", "markdown": "[StorageSlot.getBytes32Slot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L72-L77) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L72-L77", "id": "d0ca8c5491280579d14b7a76ea86b8937566c4dd91215648427f08f7ec3749eb", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2478, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1279, "length": 1391, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}], "description": "StorageSlot.getUint256Slot(bytes32) (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#82-87) is never used and should be removed\n", "markdown": "[StorageSlot.getUint256Slot(bytes32)](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L82-L87) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L82-L87", "id": "1bdc568454fd8edc14e968cab094ab3e634cb5669f43741a9a3a62e56658ec1b", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2201, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}], "description": "StorageSlotUpgradeable.getBytes32Slot(bytes32) (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#72-77) is never used and should be removed\n", "markdown": "[StorageSlotUpgradeable.getBytes32Slot(bytes32)](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L72-L77) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L72-L77", "id": "b9e6d2bcbfa6016ff3378cbd81857f04d4adbd85bfc4141737fa013cc099e3f7", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2489, "length": 190, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlotUpgradeable", "source_mapping": {"start": 1279, "length": 1402, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}], "description": "StorageSlotUpgradeable.getUint256Slot(bytes32) (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#82-87) is never used and should be removed\n", "markdown": "[StorageSlotUpgradeable.getUint256Slot(bytes32)](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L82-L87) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L82-L87", "id": "5cda1f0b5b473c08511facdd6883a8869bff2f41ae5755246900501172d0dedd", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toHexString", "source_mapping": {"start": 2102, "length": 149, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Strings", "source_mapping": {"start": 188, "length": 2065, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toHexString(address)"}}], "description": "Strings.toHexString(address) (node_modules/@openzeppelin/contracts/utils/Strings.sol#67-69) is never used and should be removed\n", "markdown": "[Strings.toHexString(address)](node_modules/@openzeppelin/contracts/utils/Strings.sol#L67-L69) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Strings.sol#L67-L69", "id": "bf1a9bd2bd7723c8678437d00b3c5ddd5e5557611befd8beb1afdb472a320b07", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toHexString", "source_mapping": {"start": 1216, "length": 174, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Strings", "source_mapping": {"start": 188, "length": 2065, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toHexString(uint256)"}}], "description": "Strings.toHexString(uint256) (node_modules/@openzeppelin/contracts/utils/Strings.sol#43-47) is never used and should be removed\n", "markdown": "[Strings.toHexString(uint256)](node_modules/@openzeppelin/contracts/utils/Strings.sol#L43-L47) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Strings.sol#L43-L47", "id": "45d4f9a4d927bc2aad6e231d4b5cf418f77eddb18c64752b92493cd95fe00b16", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toHexString", "source_mapping": {"start": 1513, "length": 437, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Strings", "source_mapping": {"start": 188, "length": 2065, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toHexString(uint256,uint256)"}}], "description": "Strings.toHexString(uint256,uint256) (node_modules/@openzeppelin/contracts/utils/Strings.sol#52-62) is never used and should be removed\n", "markdown": "[Strings.toHexString(uint256,uint256)](node_modules/@openzeppelin/contracts/utils/Strings.sol#L52-L62) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Strings.sol#L52-L62", "id": "05313e6992f87a6d1d89b079375b62fb91075a506c7c19949a2ea82c0d5bce9d", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toHexString", "source_mapping": {"start": 2146, "length": 149, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StringsUpgradeable", "source_mapping": {"start": 199, "length": 2098, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toHexString(address)"}}], "description": "StringsUpgradeable.toHexString(address) (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#67-69) is never used and should be removed\n", "markdown": "[StringsUpgradeable.toHexString(address)](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L67-L69) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L67-L69", "id": "4d9559cc23317f45a0a73bc2c41333d556e0d480bc9bc18616d897976cd7ef37", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toHexString", "source_mapping": {"start": 1249, "length": 185, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [43, 44, 45, 46, 47], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StringsUpgradeable", "source_mapping": {"start": 199, "length": 2098, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toHexString(uint256)"}}], "description": "StringsUpgradeable.toHexString(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#43-47) is never used and should be removed\n", "markdown": "[StringsUpgradeable.toHexString(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L43-L47) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L43-L47", "id": "92c180d8f3f0ab75eecdb888e93b023fa615077ca2a5ff3ea39428928fcdae78", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "toString", "source_mapping": {"start": 437, "length": 707, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StringsUpgradeable", "source_mapping": {"start": 199, "length": 2098, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "toString(uint256)"}}], "description": "StringsUpgradeable.toString(uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#18-38) is never used and should be removed\n", "markdown": "[StringsUpgradeable.toString(uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L18-L38) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L18-L38", "id": "012f0e723625a023a39004647908bc98e6eae130680efa62351c671a1ea71372", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_admin", "source_mapping": {"start": 5112, "length": 93, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [122, 123, 124], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, "signature": "_admin()"}}], "description": "TransparentUpgradeableProxy._admin() (contracts/external/TransparentUpgradeableProxy.sol#122-124) is never used and should be removed\n", "markdown": "[TransparentUpgradeableProxy._admin()](contracts/external/TransparentUpgradeableProxy.sol#L122-L124) is never used and should be removed\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L122-L124", "id": "43666b6a0b32a3c2fdfac7caa3388ea05984e7c9e1c3630723a690abfee4b734", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__UUPSUpgradeable_init", "source_mapping": {"start": 1042, "length": 67, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [23, 24], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "UUPSUpgradeable", "source_mapping": {"start": 928, "length": 3829, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "__UUPSUpgradeable_init()"}}], "description": "UUPSUpgradeable.__UUPSUpgradeable_init() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#23-24) is never used and should be removed\n", "markdown": "[UUPSUpgradeable.__UUPSUpgradeable_init()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L23-L24) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L23-L24", "id": "ab5b6737b594889e05bae75fd4328ef7cd54f60454e208239a572c75f0ed1c92", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "__UUPSUpgradeable_init_unchained", "source_mapping": {"start": 1115, "length": 77, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "UUPSUpgradeable", "source_mapping": {"start": 928, "length": 3829, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "__UUPSUpgradeable_init_unchained()"}}], "description": "UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#26-27) is never used and should be removed\n", "markdown": "[UUPSUpgradeable.__UUPSUpgradeable_init_unchained()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L26-L27) is never used and should be removed\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L26-L27", "id": "b7be0afef7320b433868adcae2f0fd430277de8512a950dbdaddc47396bb5c33", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/DistributionCreator.sol#36) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/DistributionCreator.sol#L36) allows old versions\n", "first_markdown_element": "contracts/DistributionCreator.sol#L36", "id": "d66694a877f9b0fc2af101780762c4a28e127c859bd78746ed716261ae0382f3", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/Distributor.sol#36) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/Distributor.sol#L36) allows old versions\n", "first_markdown_element": "contracts/Distributor.sol#L36", "id": "1af8393f86ce4946b654de50639a084ae95bf7c32ee6d02f3945c41484b892e2", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/deprecated/OldDistributionCreator.sol#36) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/deprecated/OldDistributionCreator.sol#L36) allows old versions\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L36", "id": "4d4c5d5a6a549159d587d907b1ee534c45d5c9e412b6f9fb753f9afb365367ce", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/deprecated/OldDistributor.sol#36) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/deprecated/OldDistributor.sol#L36) allows old versions\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L36", "id": "1340aca62cd57d5ebde9430dee6b20854525a21e91cabb913037c91603f3473a", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/external/AccessControlUpgradeable.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/external/AccessControlUpgradeable.sol#L3) allows old versions\n", "first_markdown_element": "contracts/external/AccessControlUpgradeable.sol#L3", "id": "d593a7bf43950b951c566c6fea6ad2691c8db48126e1fe9a87057f4780028611", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/external/ProxyAdmin.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/external/ProxyAdmin.sol#L3) allows old versions\n", "first_markdown_element": "contracts/external/ProxyAdmin.sol#L3", "id": "811aebe3e3487a5bc0a861e5e76bad2acff16bf3a0cb4780a91634fd3dd7934f", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/external/TransparentUpgradeableProxy.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/external/TransparentUpgradeableProxy.sol#L3) allows old versions\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L3", "id": "b1bf4c315e888d9ce3b141e156c6be9b6095db39bdfd28bbc651ce4dbebaf806", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/interfaces/CoreModuleInterfaces.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/interfaces/CoreModuleInterfaces.sol#L3) allows old versions\n", "first_markdown_element": "contracts/interfaces/CoreModuleInterfaces.sol#L3", "id": "f14e53a3daed2c682b5504d74e479f4294bc4917263caf4f891da2e79a0ec5a9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/IAgToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/IAgToken.sol", "filename_short": "contracts/interfaces/IAgToken.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/interfaces/IAgToken.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/interfaces/IAgToken.sol#L3) allows old versions\n", "first_markdown_element": "contracts/interfaces/IAgToken.sol#L3", "id": "0ab41cf910f0a389a745995929ef1dc2a9a7ee7520c4d644dddffe55f292b778", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/ICore.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/ICore.sol", "filename_short": "contracts/interfaces/ICore.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/interfaces/ICore.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/interfaces/ICore.sol#L3) allows old versions\n", "first_markdown_element": "contracts/interfaces/ICore.sol#L3", "id": "5d664f56b229f2d0f7c666dfb55e24feff01056d035fb744cc9f6b8ebbd08571", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/ITreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/ITreasury.sol", "filename_short": "contracts/interfaces/ITreasury.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/interfaces/ITreasury.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/interfaces/ITreasury.sol#L3) allows old versions\n", "first_markdown_element": "contracts/interfaces/ITreasury.sol#L3", "id": "7ec548f9c5f4bdb87f065500d75ad931456fd1620f12b964813caccec3f4bef3", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": ">=0.5.0", "source_mapping": {"start": 45, "length": 24, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", ">=", "0.5", ".0"]}}], "description": "Pragma version>=0.5.0 (contracts/interfaces/external/algebra/IAlgebraPool.sol#2) allows old versions\n", "markdown": "Pragma version[>=0.5.0](contracts/interfaces/external/algebra/IAlgebraPool.sol#L2) allows old versions\n", "first_markdown_element": "contracts/interfaces/external/algebra/IAlgebraPool.sol#L2", "id": "9e09d0ea78c35100659bedfc03b364fd0971c33d6c593df8ea13d86670f8f347", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": ">=0.5.0", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/interfaces/external/uniswap/IUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/uniswap/IUniswapV3Pool.sol", "filename_short": "contracts/interfaces/external/uniswap/IUniswapV3Pool.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", ">=", "0.5", ".0"]}}], "description": "Pragma version>=0.5.0 (contracts/interfaces/external/uniswap/IUniswapV3Pool.sol#3) allows old versions\n", "markdown": "Pragma version[>=0.5.0](contracts/interfaces/external/uniswap/IUniswapV3Pool.sol#L3) allows old versions\n", "first_markdown_element": "contracts/interfaces/external/uniswap/IUniswapV3Pool.sol#L3", "id": "e999413111f6bdf5c85545677eea143621f5cbb665e36496a2da6ed9fb1d4331", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3622, "length": 24, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/middleman/MerklGaugeMiddleman.sol#36) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/middleman/MerklGaugeMiddleman.sol#L36) allows old versions\n", "first_markdown_element": "contracts/middleman/MerklGaugeMiddleman.sol#L36", "id": "b7d81e0648ed3477166e7db26974b54ecfd74f01ec0ec3b8cfbe7e33a8fbd34f", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/middleman/MerklGaugeMiddlemanPolygon.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddlemanPolygon.sol", "filename_short": "contracts/middleman/MerklGaugeMiddlemanPolygon.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/middleman/MerklGaugeMiddlemanPolygon.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/middleman/MerklGaugeMiddlemanPolygon.sol#L3) allows old versions\n", "first_markdown_element": "contracts/middleman/MerklGaugeMiddlemanPolygon.sol#L3", "id": "32517dd76c6fe120ba75ea076f2fe89cbf0045139dfcb2f4f00ff79940a5150a", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/mock/AngleDistributor.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/mock/AngleDistributor.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L3", "id": "91b33a1c7b58fda4fcf70df9f043f10d7b0d5996e814098df0f89a957aeb0506", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/AngleDistributorEvents.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributorEvents.sol", "filename_short": "contracts/mock/AngleDistributorEvents.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/mock/AngleDistributorEvents.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/mock/AngleDistributorEvents.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/AngleDistributorEvents.sol#L3", "id": "93eb700da4f44400e894179af0f4d717abc83bc77e8c2203d81457f309072395", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/mock/MockCoreBorrow.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockCoreBorrow.sol", "filename_short": "contracts/mock/MockCoreBorrow.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/mock/MockCoreBorrow.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/mock/MockCoreBorrow.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockCoreBorrow.sol#L3", "id": "4828a7a89ac0099dad03b93249c637a6f63dfe55aa365e6980453b13896dd48e", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/mock/MockMerklGaugeMiddleman.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/mock/MockMerklGaugeMiddleman.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockMerklGaugeMiddleman.sol#L3", "id": "8031e7293616a9db3f4e6bbe40771f070d243dd0323ba5efb62f40e61bd85e59", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockPool.sol", "filename_short": "contracts/mock/MockPool.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/mock/MockPool.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/mock/MockPool.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockPool.sol#L3", "id": "757d84aac75a7332aa52c8ed43a5e544cebb6c09110e721d042fc0af4803aa30", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/mock/MockToken.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/mock/MockToken.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockToken.sol#L3", "id": "37e6edd830ce4ce6ef9b19a912741456058629ffe685d7053de666beb62c9936", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/mock/MockTokenPermit.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/mock/MockTokenPermit.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L3", "id": "3049e643d043e71e664e35c7c42b3a3b165d3780685933774a4d0f0664c887f1", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/mock/MockTreasury.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/mock/MockTreasury.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L3", "id": "e59ea236447ff05c71d085a16d66f8ecfac95265041354ec9c95a266e2b9455e", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.7", "source_mapping": {"start": 37, "length": 23, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".7"]}}], "description": "Pragma version^0.8.7 (contracts/mock/MockUniswapV3Pool.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.7](contracts/mock/MockUniswapV3Pool.sol#L3) allows old versions\n", "first_markdown_element": "contracts/mock/MockUniswapV3Pool.sol#L3", "id": "055113ad8c9ba402529501f9a10de3497bd350fb1c855c215ea1c11859d09943", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 38, "length": 24, "filename_relative": "contracts/struct/DistributionParameters.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/struct/DistributionParameters.sol", "filename_short": "contracts/struct/DistributionParameters.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/struct/DistributionParameters.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/struct/DistributionParameters.sol#L3) allows old versions\n", "first_markdown_element": "contracts/struct/DistributionParameters.sol#L3", "id": "c80aaaccca1441b1204f541014aa7aaeec050f594b24f265d225778fbf32b3d2", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 38, "length": 24, "filename_relative": "contracts/struct/ExtensiveDistributionParameters.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/struct/ExtensiveDistributionParameters.sol", "filename_short": "contracts/struct/ExtensiveDistributionParameters.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/struct/ExtensiveDistributionParameters.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/struct/ExtensiveDistributionParameters.sol#L3) allows old versions\n", "first_markdown_element": "contracts/struct/ExtensiveDistributionParameters.sol#L3", "id": "5e19851f66c371f094d4f47afa9539725689fb1b3f10eb5a4a1f201705aad9b9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 38, "length": 24, "filename_relative": "contracts/struct/RewardTokenAmounts.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/struct/RewardTokenAmounts.sol", "filename_short": "contracts/struct/RewardTokenAmounts.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/struct/RewardTokenAmounts.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/struct/RewardTokenAmounts.sol#L3) allows old versions\n", "first_markdown_element": "contracts/struct/RewardTokenAmounts.sol#L3", "id": "8b17e3cbac196611aaaf9b0be55af8509a9c8c64b30aa1f6f1697f091e45234e", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 37, "length": 24, "filename_relative": "contracts/utils/Errors.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/utils/Errors.sol", "filename_short": "contracts/utils/Errors.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/utils/Errors.sol#3) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/utils/Errors.sol#L3) allows old versions\n", "first_markdown_element": "contracts/utils/Errors.sol#L3", "id": "686ed90cd9e08155538a89150a24037226512d1f30f791f5a608d7f6aa287d55", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.17", "source_mapping": {"start": 3621, "length": 24, "filename_relative": "contracts/utils/UUPSHelper.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/utils/UUPSHelper.sol", "filename_short": "contracts/utils/UUPSHelper.sol", "is_dependency": false, "lines": [36], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".17"]}}], "description": "Pragma version^0.8.17 (contracts/utils/UUPSHelper.sol#36) allows old versions\n", "markdown": "Pragma version[^0.8.17](contracts/utils/UUPSHelper.sol#L36) allows old versions\n", "first_markdown_element": "contracts/utils/UUPSHelper.sol#L36", "id": "1764e46778530cf008abb6e75b959135eeda7a349c2a7fc5547002c7b69fb241", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol#L4", "id": "f772c43bdbdc407181007d6f126b31ace54e50d8414c7616906a3e7c6d9c1fcc", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}], "description": "Pragma version^0.8.2 (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.2](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L4", "id": "bed54dbe2e51e18eb2db3f1fd7f0692b59da90f7a501ea1e66ce631efed867d6", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#L4", "id": "9ece5656f94ef6e17af9dd7b85e5a252a637b90dbef27eb9ce1fb80193470cdc", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}], "description": "Pragma version^0.8.2 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.2](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#L4", "id": "df5db7d467cb71fbad3cca7cef629a11b02bc8f14a74db90d7ac2cecf9dc0da6", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 115, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L4", "id": "7135ea7da5c9b037cc3722b1165bf49fce77c3f2d4011f992e242c91706a6424", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 112, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L4", "id": "6d114c59ea85387949d6af3be3b56fddf9270b41fc1f791370f48531eacddd36", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 106, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#L4", "id": "c7afe8616390910e3d1f8fe83ea8b62987d055e05fe66aff83bac3637844af4b", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}], "description": "Pragma version^0.8.1 (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.1](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L4", "id": "e64ad37105cb312bce8c4abfb13684ee0f969472b655be82bca640b480c86acb", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 105, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol#L4", "id": "48e4ca27e6fa7d6db7bbecee1b3ea809064a512e1e17c2a0fea93554cdc6c20a", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol#L4", "id": "ee8ec17b876e2e765b7af6305409fdb36d9d988dffec6a7d52799df85d57bbd3", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 103, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol#L4", "id": "7277e7d31d0711b2943a70eb0f7e5651985e0d154d46218c3cd9963f745fe95b", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 102, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/access/Ownable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", "filename_short": "node_modules/@openzeppelin/contracts/access/Ownable.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/access/Ownable.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/access/Ownable.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/access/Ownable.sol#L4", "id": "d9fcf15f6c48db746fe8b4b5b79cadf5dc4cde499aed490b6b22d0f93b6cdddd", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol", "filename_short": "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol#L4", "id": "e9dc014ff8b2ddaebc8b9b045ed7e83f0c6aa2a81dff3700b7cb586a68fc4e9a", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4", "id": "2c1a6f48b127bf060839bcfa88f82905235cac907d2caa4397540a0c81acb372", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}], "description": "Pragma version^0.8.2 (node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.2](node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4", "id": "c4ce7000645171caa13ac1ac9ce3c78113efaff0318d3118a7259a3a8f9b9ae0", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/proxy/Proxy.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/Proxy.sol#L4", "id": "23b234550a8038ab06423d32426982476d6dba5f2628b85434147b1bd875298a", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol", "filename_short": "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol#L4", "id": "299eff3e02c859647e8000ab8fde3c6d5e25c0f0867a9013134242db494481a9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 105, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#L4", "id": "9d8a804f21d9bda1c90bbe4177baae5a4bfe61bc990c3ffec1a5cb063264dce7", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 106, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#L4", "id": "851a3cc70cf5a0e84cea60ba82f675bc668a61dfc08f0b82199206a5fbafb3b4", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 110, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4", "id": "0ac7c62454421eba41ad4bc7f77cc11d95ff2e283def53e5f32dd991137af888", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 128, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L4", "id": "53b091a2d54318260dcd275f6a8849ebed779d7a7d13d1b2ce91930c6225f19b", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L4", "id": "0e9d43b95f7dace4a9f685e655540c00bca0d928920120f4c2becf8264ae6461", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 115, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#L4", "id": "13dabe172ccfefdebf673e8746caddd1d47e6fb6b38a1d8376db205df0468d9d", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}], "description": "Pragma version^0.8.1 (node_modules/@openzeppelin/contracts/utils/Address.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.1](node_modules/@openzeppelin/contracts/utils/Address.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L4", "id": "5906f1667ddb1546c744db1c5ec0714512ac2139194ac59714f6577a5008fe49", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 86, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Context.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Context.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/Context.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/Context.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Context.sol#L4", "id": "21c670e40e414a2f849413afbbdb25adb81dae6585c4f38fc83730c17377e60f", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 87, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Counters.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/Counters.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/Counters.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Counters.sol#L4", "id": "833c66ce7f52d0f775c7a2eefef742d581ed1692ac758436e22f77ceeb7c72be", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 105, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol#L4", "id": "aa095375ce1d0e509713ad4ebf88824cc0195cc67ce8c1758fddd67608f80bec", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 101, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Strings.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/Strings.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/Strings.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Strings.sol#L4", "id": "39bb6de244e9d295e9aa6c566b0b6e8f01ba481f4efc9e16952394697f339857", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 112, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol#L4", "id": "06845140c4de83a67b7ea1fa3eefa5eaca6813a74e80720101c31e3c3af14ffc", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L4", "id": "26b5bda9479bb3f2b10a14056215aca813ef0e7936839a387c617f13495b7841", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 103, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/Math.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/Math.sol", "is_dependency": false, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/math/Math.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/math/Math.sol#L4) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/Math.sol#L4", "id": "130b200c2cd5c862a66dcbc8a3ffac498e3ed4a304c8baab3e01c4138d7f44a4", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 192, "length": 23, "filename_relative": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol", "is_dependency": false, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#5) allows old versions\n", "markdown": "Pragma version[^0.8.0](node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L5) allows old versions\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol#L5", "id": "cc2fd260babb2a1b9d4222b636cd59575d6fe8b7336107cb7edc9d8aca3392e8", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [], "description": "solc-0.8.20 is not recommended for deployment\n", "markdown": "solc-0.8.20 is not recommended for deployment\n", "first_markdown_element": "", "id": "5994d07edbbb82fc2013b486f41a2fa69898d896bb171a7f7c8bd767eb5b6521", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "tryGetExtensiveDistributionParameters", "source_mapping": {"start": 35781, "length": 603, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "tryGetExtensiveDistributionParameters(DistributionParameters)"}}, {"type": "node", "name": "(callSuccess,returndata) = address(this).delegatecall(abi.encodeWithSelector(DistributionCreator.getExtensiveDistributionParameters.selector,distribution))", "source_mapping": {"start": 35984, "length": 197, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [708, 709, 710], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "tryGetExtensiveDistributionParameters", "source_mapping": {"start": 35781, "length": 603, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "tryGetExtensiveDistributionParameters(DistributionParameters)"}}}}], "description": "Low level call in DistributionCreator.tryGetExtensiveDistributionParameters(DistributionParameters) (contracts/DistributionCreator.sol#705-716):\n\t- (callSuccess,returndata) = address(this).delegatecall(abi.encodeWithSelector(DistributionCreator.getExtensiveDistributionParameters.selector,distribution)) (contracts/DistributionCreator.sol#708-710)\n", "markdown": "Low level call in [DistributionCreator.tryGetExtensiveDistributionParameters(DistributionParameters)](contracts/DistributionCreator.sol#L705-L716):\n\t- [(callSuccess,returndata) = address(this).delegatecall(abi.encodeWithSelector(DistributionCreator.getExtensiveDistributionParameters.selector,distribution))](contracts/DistributionCreator.sol#L708-L710)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L705-L716", "id": "8cf6b16dd8770d6589df9e08f28eb020f9d4fdf9995723c122caedbafa8c9e2c", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getProxyImplementation", "source_mapping": {"start": 655, "length": 437, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ProxyAdmin", "source_mapping": {"start": 455, "length": 2406, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "getProxyImplementation(TransparentUpgradeableProxy)"}}, {"type": "node", "name": "(success,returndata) = address(proxy).staticcall(0x5c60da1b)", "source_mapping": {"start": 927, "length": 82, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [24], "starting_column": 9, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "getProxyImplementation", "source_mapping": {"start": 655, "length": 437, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ProxyAdmin", "source_mapping": {"start": 455, "length": 2406, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "getProxyImplementation(TransparentUpgradeableProxy)"}}}}], "description": "Low level call in ProxyAdmin.getProxyImplementation(TransparentUpgradeableProxy) (contracts/external/ProxyAdmin.sol#21-27):\n\t- (success,returndata) = address(proxy).staticcall(0x5c60da1b) (contracts/external/ProxyAdmin.sol#24)\n", "markdown": "Low level call in [ProxyAdmin.getProxyImplementation(TransparentUpgradeableProxy)](contracts/external/ProxyAdmin.sol#L21-L27):\n\t- [(success,returndata) = address(proxy).staticcall(0x5c60da1b)](contracts/external/ProxyAdmin.sol#L24)\n", "first_markdown_element": "contracts/external/ProxyAdmin.sol#L21-L27", "id": "b2e8cedf46af357c8efd7e1fdb1bce227048b0bcb1ab98c01a5f18d06cb03e4e", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getProxyAdmin", "source_mapping": {"start": 1252, "length": 419, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [36, 37, 38, 39, 40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ProxyAdmin", "source_mapping": {"start": 455, "length": 2406, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "getProxyAdmin(TransparentUpgradeableProxy)"}}, {"type": "node", "name": "(success,returndata) = address(proxy).staticcall(0xf851a440)", "source_mapping": {"start": 1506, "length": 82, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 91}, "type_specific_fields": {"parent": {"type": "function", "name": "getProxyAdmin", "source_mapping": {"start": 1252, "length": 419, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [36, 37, 38, 39, 40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ProxyAdmin", "source_mapping": {"start": 455, "length": 2406, "filename_relative": "contracts/external/ProxyAdmin.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/ProxyAdmin.sol", "filename_short": "contracts/external/ProxyAdmin.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "getProxyAdmin(TransparentUpgradeableProxy)"}}}}], "description": "Low level call in ProxyAdmin.getProxyAdmin(TransparentUpgradeableProxy) (contracts/external/ProxyAdmin.sol#36-42):\n\t- (success,returndata) = address(proxy).staticcall(0xf851a440) (contracts/external/ProxyAdmin.sol#39)\n", "markdown": "Low level call in [ProxyAdmin.getProxyAdmin(TransparentUpgradeableProxy)](contracts/external/ProxyAdmin.sol#L36-L42):\n\t- [(success,returndata) = address(proxy).staticcall(0xf851a440)](contracts/external/ProxyAdmin.sol#L39)\n", "first_markdown_element": "contracts/external/ProxyAdmin.sol#L36-L42", "id": "21e4e28fd1c63d3e74985e5421bdea2a349a09b6545dbee2aef18b6f8d693015", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_functionDelegateCall", "source_mapping": {"start": 7088, "length": 455, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_functionDelegateCall(address,bytes)"}}, {"type": "node", "name": "(success,returndata) = target.delegatecall(data)", "source_mapping": {"start": 7353, "length": 67, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [202], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "_functionDelegateCall", "source_mapping": {"start": 7088, "length": 455, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [198, 199, 200, 201, 202, 203, 204], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "_functionDelegateCall(address,bytes)"}}}}], "description": "Low level call in ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#198-204):\n\t- (success,returndata) = target.delegatecall(data) (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#202)\n", "markdown": "Low level call in [ERC1967UpgradeUpgradeable._functionDelegateCall(address,bytes)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L198-L204):\n\t- [(success,returndata) = target.delegatecall(data)](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L202)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L198-L204", "id": "dcd6b706fef06fdc1cfc1c8d270c3bd461fad03136306dc3987e7dec15292ea0", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 2423, "length": 312, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}, {"type": "node", "name": "(success) = recipient.call{value: amount}()", "source_mapping": {"start": 2588, "length": 52, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [63], "starting_column": 9, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "function", "name": "sendValue", "source_mapping": {"start": 2423, "length": 312, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}}}], "description": "Low level call in AddressUpgradeable.sendValue(address,uint256) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#60-65):\n\t- (success) = recipient.call{value: amount}() (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#63)\n", "markdown": "Low level call in [AddressUpgradeable.sendValue(address,uint256)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L60-L65):\n\t- [(success) = recipient.call{value: amount}()](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L63)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L60-L65", "id": "55db164eb9ac65785b956cb99b8e24c40ef10858484c53f8e8593dd83a2c8ca0", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4971, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}, {"type": "node", "name": "(success,returndata) = target.call{value: value}(data)", "source_mapping": {"start": 5251, "length": 73, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [135], "starting_column": 9, "ending_column": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4971, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}}}], "description": "Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#135)\n", "markdown": "Low level call in [AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L135)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L128-L137", "id": "b055de1f0e32261bfc94f8376eed86e29658d2f588ddd1134abed80e6d35fadf", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5975, "length": 326, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}, {"type": "node", "name": "(success,returndata) = target.staticcall(data)", "source_mapping": {"start": 6143, "length": 65, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [160], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5975, "length": 326, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AddressUpgradeable", "source_mapping": {"start": 194, "length": 8087, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}}}], "description": "Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#160)\n", "markdown": "Low level call in [AddressUpgradeable.functionStaticCall(address,bytes,string)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L160)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#L155-L162", "id": "baa83774a2040bdc437f652779408968735ec53303d22392bc04bbabb86294e7", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 2412, "length": 312, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}, {"type": "node", "name": "(success) = recipient.call{value: amount}()", "source_mapping": {"start": 2577, "length": 52, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [63], "starting_column": 9, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "function", "name": "sendValue", "source_mapping": {"start": 2412, "length": 312, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [60, 61, 62, 63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}}}], "description": "Low level call in Address.sendValue(address,uint256) (node_modules/@openzeppelin/contracts/utils/Address.sol#60-65):\n\t- (success) = recipient.call{value: amount}() (node_modules/@openzeppelin/contracts/utils/Address.sol#63)\n", "markdown": "Low level call in [Address.sendValue(address,uint256)](node_modules/@openzeppelin/contracts/utils/Address.sol#L60-L65):\n\t- [(success) = recipient.call{value: amount}()](node_modules/@openzeppelin/contracts/utils/Address.sol#L63)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L60-L65", "id": "a45709b07c12b3e52a59e9b801f6f63b73382e5cec54b85cd8172ce2bc9d44b3", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4960, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}, {"type": "node", "name": "(success,returndata) = target.call{value: value}(data)", "source_mapping": {"start": 5240, "length": 73, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [135], "starting_column": 9, "ending_column": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 4960, "length": 446, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}}}], "description": "Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#135)\n", "markdown": "Low level call in [Address.functionCallWithValue(address,bytes,uint256,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](node_modules/@openzeppelin/contracts/utils/Address.sol#L135)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L128-L137", "id": "10cd8f95ab7ad0b059f194e1c0cac49d10c8b803e18fc565e3988b610838588e", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5964, "length": 326, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}, {"type": "node", "name": "(success,returndata) = target.staticcall(data)", "source_mapping": {"start": 6132, "length": 65, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [160], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 5964, "length": 326, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}}}], "description": "Low level call in Address.functionStaticCall(address,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#160)\n", "markdown": "Low level call in [Address.functionStaticCall(address,bytes,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](node_modules/@openzeppelin/contracts/utils/Address.sol#L160)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L155-L162", "id": "e3ee17b8fef34f7aa5d6702465607b39fa84c0a41805016249d2bb597f804e20", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionDelegateCall", "source_mapping": {"start": 6853, "length": 325, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [180, 181, 182, 183, 184, 185, 186, 187], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionDelegateCall(address,bytes,string)"}}, {"type": "node", "name": "(success,returndata) = target.delegatecall(data)", "source_mapping": {"start": 7018, "length": 67, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [185], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "functionDelegateCall", "source_mapping": {"start": 6853, "length": 325, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [180, 181, 182, 183, 184, 185, 186, 187], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 8964, "filename_relative": "node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/Address.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/Address.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionDelegateCall(address,bytes,string)"}}}}], "description": "Low level call in Address.functionDelegateCall(address,bytes,string) (node_modules/@openzeppelin/contracts/utils/Address.sol#180-187):\n\t- (success,returndata) = target.delegatecall(data) (node_modules/@openzeppelin/contracts/utils/Address.sol#185)\n", "markdown": "Low level call in [Address.functionDelegateCall(address,bytes,string)](node_modules/@openzeppelin/contracts/utils/Address.sol#L180-L187):\n\t- [(success,returndata) = target.delegatecall(data)](node_modules/@openzeppelin/contracts/utils/Address.sol#L185)\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/Address.sol#L180-L187", "id": "eb55d26dc37115ebf2c001e147fef74bea1ee1fcd18fcde4ae8d16988e732b54", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, {"type": "contract", "name": "IDistributionCreator", "source_mapping": {"start": 4422, "length": 237, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [50, 51, 52, 53, 54], "starting_column": 1, "ending_column": 2}}], "description": "DistributionCreator (contracts/DistributionCreator.sol#63-756) should inherit from IDistributionCreator (contracts/DistributionCreator.sol#50-54)\n", "markdown": "[DistributionCreator](contracts/DistributionCreator.sol#L63-L756) should inherit from [IDistributionCreator](contracts/DistributionCreator.sol#L50-L54)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L63-L756", "id": "dc54d2078166f96e5e9960434c9b95672bca3e796e331934d6c3d953cd45782b", "check": "missing-inheritance", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1651, "length": 3556, "filename_relative": "contracts/external/TransparentUpgradeableProxy.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/TransparentUpgradeableProxy.sol", "filename_short": "contracts/external/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125], "starting_column": 1, "ending_column": 2}}, {"type": "contract", "name": "IBeaconUpgradeable", "source_mapping": {"start": 198, "length": 262, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16], "starting_column": 1, "ending_column": 2}}], "description": "TransparentUpgradeableProxy (contracts/external/TransparentUpgradeableProxy.sol#29-125) should inherit from IBeaconUpgradeable (node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#9-16)\n", "markdown": "[TransparentUpgradeableProxy](contracts/external/TransparentUpgradeableProxy.sol#L29-L125) should inherit from [IBeaconUpgradeable](node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol#L9-L16)\n", "first_markdown_element": "contracts/external/TransparentUpgradeableProxy.sol#L29-L125", "id": "ca2a002ea6ff7639d3d360dac95d15cbdf81ce8f8ecdb6f379b70809dd83654b", "check": "missing-inheritance", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "contract", "name": "MockCoreBorrow", "source_mapping": {"start": 63, "length": 585, "filename_relative": "contracts/mock/MockCoreBorrow.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockCoreBorrow.sol", "filename_short": "contracts/mock/MockCoreBorrow.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], "starting_column": 1, "ending_column": 2}}, {"type": "contract", "name": "ICore", "source_mapping": {"start": 211, "length": 669, "filename_relative": "contracts/interfaces/ICore.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/ICore.sol", "filename_short": "contracts/interfaces/ICore.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "starting_column": 1, "ending_column": 2}}], "description": "MockCoreBorrow (contracts/mock/MockCoreBorrow.sol#5-24) should inherit from ICore (contracts/interfaces/ICore.sol#8-20)\n", "markdown": "[MockCoreBorrow](contracts/mock/MockCoreBorrow.sol#L5-L24) should inherit from [ICore](contracts/interfaces/ICore.sol#L8-L20)\n", "first_markdown_element": "contracts/mock/MockCoreBorrow.sol#L5-L24", "id": "1d84d24ff6c60a57a35aad2f85f7c2227bb4e762336545262e340f093626c919", "check": "missing-inheritance", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, {"type": "contract", "name": "ICore", "source_mapping": {"start": 211, "length": 669, "filename_relative": "contracts/interfaces/ICore.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/ICore.sol", "filename_short": "contracts/interfaces/ICore.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "starting_column": 1, "ending_column": 2}}], "description": "MockTreasury (contracts/mock/MockTreasury.sol#5-36) should inherit from ICore (contracts/interfaces/ICore.sol#8-20)\n", "markdown": "[MockTreasury](contracts/mock/MockTreasury.sol#L5-L36) should inherit from [ICore](contracts/interfaces/ICore.sol#L8-L20)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L5-L36", "id": "42039337612a54f39ee8784264f0f6af7e69405f124b04255732146d94dcfd85", "check": "missing-inheritance", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_core", "source_mapping": {"start": 8979, "length": 11, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [157], "starting_column": 25, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 8959, "length": 324, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore,address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.initialize(ICore,address,uint256)._core (contracts/DistributionCreator.sol#157) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.initialize(ICore,address,uint256)._core](contracts/DistributionCreator.sol#L157) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L157", "id": "7cdd15ea55c6f0531b3b6b9c73a45c72bef1d9702cb64d420d2659af1d0a816e", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_distributor", "source_mapping": {"start": 8992, "length": 20, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [157], "starting_column": 38, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 8959, "length": 324, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore,address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.initialize(ICore,address,uint256)._distributor (contracts/DistributionCreator.sol#157) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.initialize(ICore,address,uint256)._distributor](contracts/DistributionCreator.sol#L157) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L157", "id": "b5e1730f0a93ffdfb0b34ef9d4d20a7d9dedf87fbe5963e93679bfc5087f9db3", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_fees", "source_mapping": {"start": 9014, "length": 13, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [157], "starting_column": 60, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 8959, "length": 324, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [157, 158, 159, 160, 161, 162, 163], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore,address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.initialize(ICore,address,uint256)._fees (contracts/DistributionCreator.sol#157) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.initialize(ICore,address,uint256)._fees](contracts/DistributionCreator.sol#L157) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L157", "id": "a9675c78c11d8064f99fabd420ea71e8ddcb841773789d8372d0e5cf5ec4c2b3", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_distributor", "source_mapping": {"start": 30127, "length": 20, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [578], "starting_column": 32, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "setNewDistributor", "source_mapping": {"start": 30100, "length": 234, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [578, 579, 580, 581, 582], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "setNewDistributor(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.setNewDistributor(address)._distributor (contracts/DistributionCreator.sol#578) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.setNewDistributor(address)._distributor](contracts/DistributionCreator.sol#L578) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L578", "id": "bd2e3119748d880dbb36501975a0e891a1b3a330d79a12197fcf9740d66a414b", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_fees", "source_mapping": {"start": 30398, "length": 13, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [585], "starting_column": 22, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "setFees", "source_mapping": {"start": 30381, "length": 174, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [585, 586, 587, 588, 589], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "setFees(uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.setFees(uint256)._fees (contracts/DistributionCreator.sol#585) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.setFees(uint256)._fees](contracts/DistributionCreator.sol#L585) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L585", "id": "ccb5a465d314ad71bf82f66033a496243947b40eaac4a56bb1ad1ee31525cbe9", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_feeRecipient", "source_mapping": {"start": 32498, "length": 21, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [633], "starting_column": 30, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "setFeeRecipient", "source_mapping": {"start": 32473, "length": 174, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [633, 634, 635, 636], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "setFeeRecipient(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.setFeeRecipient(address)._feeRecipient (contracts/DistributionCreator.sol#633) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.setFeeRecipient(address)._feeRecipient](contracts/DistributionCreator.sol#L633) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L633", "id": "ae58bfc4952a037b9695af38e8ea0c249f2ab1e94bde687ed118cbd688ec077c", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_message", "source_mapping": {"start": 32762, "length": 22, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [639], "starting_column": 25, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "setMessage", "source_mapping": {"start": 32742, "length": 268, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [639, 640, 641, 642, 643, 644], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}, "signature": "setMessage(string)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter DistributionCreator.setMessage(string)._message (contracts/DistributionCreator.sol#639) is not in mixedCase\n", "markdown": "Parameter [DistributionCreator.setMessage(string)._message](contracts/DistributionCreator.sol#L639) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L639", "id": "50dff40a583ef657c36a32e2e6d017ef35244fc7ee2444847bf5be904ee02905", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 7383, "length": 25, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [121], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable DistributionCreator.__gap (contracts/DistributionCreator.sol#121) is not in mixedCase\n", "markdown": "Variable [DistributionCreator.__gap](contracts/DistributionCreator.sol#L121) is not in mixedCase\n", "first_markdown_element": "contracts/DistributionCreator.sol#L121", "id": "1f6a02d29606d4dce04d74fa22524465e65051b52e996a0183001c1ff24f87e5", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_core", "source_mapping": {"start": 7918, "length": 11, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [144], "starting_column": 25, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 7898, "length": 147, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [144, 145, 146, 147], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Distributor.initialize(ICore)._core (contracts/Distributor.sol#144) is not in mixedCase\n", "markdown": "Parameter [Distributor.initialize(ICore)._core](contracts/Distributor.sol#L144) is not in mixedCase\n", "first_markdown_element": "contracts/Distributor.sol#L144", "id": "cf5af3ea3dcc75ce5dbd99f23942096d8661461541d99635b6b327d3366ff692", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_tree", "source_mapping": {"start": 10953, "length": 25, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [215], "starting_column": 25, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "updateTree", "source_mapping": {"start": 10933, "length": 773, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "updateTree(MerkleTree)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Distributor.updateTree(MerkleTree)._tree (contracts/Distributor.sol#215) is not in mixedCase\n", "markdown": "Parameter [Distributor.updateTree(MerkleTree)._tree](contracts/Distributor.sol#L215) is not in mixedCase\n", "first_markdown_element": "contracts/Distributor.sol#L215", "id": "dacc8a9fb3d66280cc176f887379cb0b5e23ba8588332395975305409e1c795d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_disputePeriod", "source_mapping": {"start": 14401, "length": 21, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [287], "starting_column": 31, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputePeriod", "source_mapping": {"start": 14375, "length": 187, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [287, 288, 289, 290], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputePeriod(uint48)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Distributor.setDisputePeriod(uint48)._disputePeriod (contracts/Distributor.sol#287) is not in mixedCase\n", "markdown": "Parameter [Distributor.setDisputePeriod(uint48)._disputePeriod](contracts/Distributor.sol#L287) is not in mixedCase\n", "first_markdown_element": "contracts/Distributor.sol#L287", "id": "a7cf1219e18010eb080a45ccd560b9aba340261326396b94f57ce0d6c3d5acb1", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_disputeToken", "source_mapping": {"start": 14658, "length": 20, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [293], "starting_column": 30, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputeToken", "source_mapping": {"start": 14633, "length": 246, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [293, 294, 295, 296, 297], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputeToken(IERC20)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Distributor.setDisputeToken(IERC20)._disputeToken (contracts/Distributor.sol#293) is not in mixedCase\n", "markdown": "Parameter [Distributor.setDisputeToken(IERC20)._disputeToken](contracts/Distributor.sol#L293) is not in mixedCase\n", "first_markdown_element": "contracts/Distributor.sol#L293", "id": "7e7e833a4f9a0929b80fdcc225ad94a3c26bb0a3669df198212cf01ed788501c", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_disputeAmount", "source_mapping": {"start": 14995, "length": 22, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [300], "starting_column": 31, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputeAmount", "source_mapping": {"start": 14969, "length": 244, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [300, 301, 302, 303, 304], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputeAmount(uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Distributor.setDisputeAmount(uint256)._disputeAmount (contracts/Distributor.sol#300) is not in mixedCase\n", "markdown": "Parameter [Distributor.setDisputeAmount(uint256)._disputeAmount](contracts/Distributor.sol#L300) is not in mixedCase\n", "first_markdown_element": "contracts/Distributor.sol#L300", "id": "5f7801abd12b25b4dcd8d3c01a7376c29c86bc26eb82474bc895bc3824dc9dae", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 6208, "length": 25, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [108], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable Distributor.__gap (contracts/Distributor.sol#108) is not in mixedCase\n", "markdown": "Variable [Distributor.__gap](contracts/Distributor.sol#L108) is not in mixedCase\n", "first_markdown_element": "contracts/Distributor.sol#L108", "id": "6a6ab24dce8a394fb1c383a1ef6a7623cf6caf4cde484f7e0fd5f01e6e09ccee", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_core", "source_mapping": {"start": 8419, "length": 11, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [146], "starting_column": 25, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 8399, "length": 324, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [146, 147, 148, 149, 150, 151, 152], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore,address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.initialize(ICore,address,uint256)._core (contracts/deprecated/OldDistributionCreator.sol#146) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.initialize(ICore,address,uint256)._core](contracts/deprecated/OldDistributionCreator.sol#L146) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L146", "id": "168902163ad62c59bd0175d1f6d7da29cbebdf24217c9566022c0623d61d9ae0", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_distributor", "source_mapping": {"start": 8432, "length": 20, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [146], "starting_column": 38, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 8399, "length": 324, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [146, 147, 148, 149, 150, 151, 152], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore,address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.initialize(ICore,address,uint256)._distributor (contracts/deprecated/OldDistributionCreator.sol#146) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.initialize(ICore,address,uint256)._distributor](contracts/deprecated/OldDistributionCreator.sol#L146) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L146", "id": "04d41d295c5f7e0e28f06d60c8eb2a6ceac9544a57967ab1bed4492ca97b2277", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_fees", "source_mapping": {"start": 8454, "length": 13, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [146], "starting_column": 60, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 8399, "length": 324, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [146, 147, 148, 149, 150, 151, 152], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore,address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.initialize(ICore,address,uint256)._fees (contracts/deprecated/OldDistributionCreator.sol#146) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.initialize(ICore,address,uint256)._fees](contracts/deprecated/OldDistributionCreator.sol#L146) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L146", "id": "1ce9e6609b454d2b0579d1e347c721b787d7a5464bb441afd38b566566d752fa", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_distributor", "source_mapping": {"start": 20282, "length": 20, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [373], "starting_column": 32, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "setNewDistributor", "source_mapping": {"start": 20255, "length": 234, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [373, 374, 375, 376, 377], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "setNewDistributor(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.setNewDistributor(address)._distributor (contracts/deprecated/OldDistributionCreator.sol#373) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.setNewDistributor(address)._distributor](contracts/deprecated/OldDistributionCreator.sol#L373) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L373", "id": "b3060e6c7a3de6961c5bdc7cdff3aa4551b1e5f1645cfe4abd409c01024051ad", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_fees", "source_mapping": {"start": 20553, "length": 13, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [380], "starting_column": 22, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "setFees", "source_mapping": {"start": 20536, "length": 174, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [380, 381, 382, 383, 384], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "setFees(uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.setFees(uint256)._fees (contracts/deprecated/OldDistributionCreator.sol#380) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.setFees(uint256)._fees](contracts/deprecated/OldDistributionCreator.sol#L380) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L380", "id": "2ca0c59cad1fef71b6905201c0cec19636b0160de69dd12a130eb632169a8cbf", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_feeRecipient", "source_mapping": {"start": 22653, "length": 21, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [428], "starting_column": 30, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "setFeeRecipient", "source_mapping": {"start": 22628, "length": 174, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [428, 429, 430, 431], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "setFeeRecipient(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.setFeeRecipient(address)._feeRecipient (contracts/deprecated/OldDistributionCreator.sol#428) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.setFeeRecipient(address)._feeRecipient](contracts/deprecated/OldDistributionCreator.sol#L428) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L428", "id": "e1582e8c28c8d05b6be673e2001a3fd4bc80cd209827c77607b76558ec6f3644", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_message", "source_mapping": {"start": 22917, "length": 22, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [434], "starting_column": 25, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "setMessage", "source_mapping": {"start": 22897, "length": 268, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [434, 435, 436, 437, 438, 439], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}, "signature": "setMessage(string)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributionCreator.setMessage(string)._message (contracts/deprecated/OldDistributionCreator.sol#434) is not in mixedCase\n", "markdown": "Parameter [OldDistributionCreator.setMessage(string)._message](contracts/deprecated/OldDistributionCreator.sol#L434) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L434", "id": "6a9d133e5f67dbc11861bdfffcd62f468880b15ca5f9f31df7b946da3a4e0653", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 6967, "length": 25, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [115], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable OldDistributionCreator.__gap (contracts/deprecated/OldDistributionCreator.sol#115) is not in mixedCase\n", "markdown": "Variable [OldDistributionCreator.__gap](contracts/deprecated/OldDistributionCreator.sol#L115) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L115", "id": "4b2e0eb5f413f46a9b6bad09f929629a89a0821f8464edeb8642ae070a6eea04", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_core", "source_mapping": {"start": 7563, "length": 11, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [139], "starting_column": 25, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 7543, "length": 147, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [139, 140, 141, 142], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(ICore)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributor.initialize(ICore)._core (contracts/deprecated/OldDistributor.sol#139) is not in mixedCase\n", "markdown": "Parameter [OldDistributor.initialize(ICore)._core](contracts/deprecated/OldDistributor.sol#L139) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L139", "id": "c5e3339281176b4fd1e964cfdadd1ed433bc31b379810eef77f6415a2be7fce2", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_tree", "source_mapping": {"start": 10567, "length": 25, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [210], "starting_column": 25, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "updateTree", "source_mapping": {"start": 10547, "length": 701, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "updateTree(MerkleTree)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributor.updateTree(MerkleTree)._tree (contracts/deprecated/OldDistributor.sol#210) is not in mixedCase\n", "markdown": "Parameter [OldDistributor.updateTree(MerkleTree)._tree](contracts/deprecated/OldDistributor.sol#L210) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L210", "id": "9de44de5af7e92b2f850a5d504e23236af6d74611f1c7296f20d432faa650277", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_disputePeriod", "source_mapping": {"start": 13864, "length": 21, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [279], "starting_column": 31, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputePeriod", "source_mapping": {"start": 13838, "length": 256, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [279, 280, 281, 282, 283], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputePeriod(uint48)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributor.setDisputePeriod(uint48)._disputePeriod (contracts/deprecated/OldDistributor.sol#279) is not in mixedCase\n", "markdown": "Parameter [OldDistributor.setDisputePeriod(uint48)._disputePeriod](contracts/deprecated/OldDistributor.sol#L279) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L279", "id": "3859043ca3954159b7c25ce3daefb6601977c2482bbd63223d7b1a6c6c14feff", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_disputeToken", "source_mapping": {"start": 14190, "length": 20, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [286], "starting_column": 30, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputeToken", "source_mapping": {"start": 14165, "length": 246, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [286, 287, 288, 289, 290], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputeToken(IERC20)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributor.setDisputeToken(IERC20)._disputeToken (contracts/deprecated/OldDistributor.sol#286) is not in mixedCase\n", "markdown": "Parameter [OldDistributor.setDisputeToken(IERC20)._disputeToken](contracts/deprecated/OldDistributor.sol#L286) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L286", "id": "570806180a85bdb8f42eb4cb71bf1586788d0bc22e03d36b1e90bac5ae413b51", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_disputeAmount", "source_mapping": {"start": 14527, "length": 22, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [293], "starting_column": 31, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "function", "name": "setDisputeAmount", "source_mapping": {"start": 14501, "length": 244, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [293, 294, 295, 296, 297], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}, "signature": "setDisputeAmount(uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter OldDistributor.setDisputeAmount(uint256)._disputeAmount (contracts/deprecated/OldDistributor.sol#293) is not in mixedCase\n", "markdown": "Parameter [OldDistributor.setDisputeAmount(uint256)._disputeAmount](contracts/deprecated/OldDistributor.sol#L293) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L293", "id": "2cae706832f9e192d5eccb636e8edcfa21e134d79e325a13a5aa660bc9683fe7", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 6024, "length": 25, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [104], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable OldDistributor.__gap (contracts/deprecated/OldDistributor.sol#104) is not in mixedCase\n", "markdown": "Variable [OldDistributor.__gap](contracts/deprecated/OldDistributor.sol#L104) is not in mixedCase\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L104", "id": "62286f87d4001ac61656a359b5668361fa1eca3915a81bdf2a3342957eda7de5", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__AccessControl_init", "source_mapping": {"start": 2014, "length": 102, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [52, 53, 54], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 1948, "length": 6156, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControl_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function AccessControlUpgradeable.__AccessControl_init() (contracts/external/AccessControlUpgradeable.sol#52-54) is not in mixedCase\n", "markdown": "Function [AccessControlUpgradeable.__AccessControl_init()](contracts/external/AccessControlUpgradeable.sol#L52-L54) is not in mixedCase\n", "first_markdown_element": "contracts/external/AccessControlUpgradeable.sol#L52-L54", "id": "a333fa38b5f96027543bfa2131aac6765059644ab6c7dae2f8d357b5fbaa2f2b", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__AccessControl_init_unchained", "source_mapping": {"start": 2122, "length": 65, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [56], "starting_column": 5, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 1948, "length": 6156, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControl_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function AccessControlUpgradeable.__AccessControl_init_unchained() (contracts/external/AccessControlUpgradeable.sol#56) is not in mixedCase\n", "markdown": "Function [AccessControlUpgradeable.__AccessControl_init_unchained()](contracts/external/AccessControlUpgradeable.sol#L56) is not in mixedCase\n", "first_markdown_element": "contracts/external/AccessControlUpgradeable.sol#L56", "id": "226e7d5af64c132f41abf0df79c0723e2a9ee53e2961f745732ce61ab1360dbe", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 8076, "length": 25, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [239], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 1948, "length": 6156, "filename_relative": "contracts/external/AccessControlUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/external/AccessControlUpgradeable.sol", "filename_short": "contracts/external/AccessControlUpgradeable.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable AccessControlUpgradeable.__gap (contracts/external/AccessControlUpgradeable.sol#239) is not in mixedCase\n", "markdown": "Variable [AccessControlUpgradeable.__gap](contracts/external/AccessControlUpgradeable.sol#L239) is not in mixedCase\n", "first_markdown_element": "contracts/external/AccessControlUpgradeable.sol#L239", "id": "408a5a92ce9ee8bac5e964324c5e93c944b47606ce29c3515b4b54a7b28f372d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "gauge_types", "source_mapping": {"start": 435, "length": 66, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [18], "starting_column": 5, "ending_column": 71}, "type_specific_fields": {"parent": {"type": "contract", "name": "IGaugeController", "source_mapping": {"start": 370, "length": 402, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "starting_column": 1, "ending_column": 2}}, "signature": "gauge_types(address)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function IGaugeController.gauge_types(address) (contracts/interfaces/CoreModuleInterfaces.sol#18) is not in mixedCase\n", "markdown": "Function [IGaugeController.gauge_types(address)](contracts/interfaces/CoreModuleInterfaces.sol#L18) is not in mixedCase\n", "first_markdown_element": "contracts/interfaces/CoreModuleInterfaces.sol#L18", "id": "d50df0a5b520b296e5b9db1445100d3fc8fc78fc9b36675dc51a9f54bc7fa51d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "gauge_relative_weight_write", "source_mapping": {"start": 539, "length": 97, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [21], "starting_column": 5, "ending_column": 102}, "type_specific_fields": {"parent": {"type": "contract", "name": "IGaugeController", "source_mapping": {"start": 370, "length": 402, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "starting_column": 1, "ending_column": 2}}, "signature": "gauge_relative_weight_write(address,uint256)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function IGaugeController.gauge_relative_weight_write(address,uint256) (contracts/interfaces/CoreModuleInterfaces.sol#21) is not in mixedCase\n", "markdown": "Function [IGaugeController.gauge_relative_weight_write(address,uint256)](contracts/interfaces/CoreModuleInterfaces.sol#L21) is not in mixedCase\n", "first_markdown_element": "contracts/interfaces/CoreModuleInterfaces.sol#L21", "id": "60db915824c3516790cc95d82770480ecc764cf1b4a2c931811e8878a9da61bf", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "gauge_relative_weight", "source_mapping": {"start": 674, "length": 96, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [24], "starting_column": 5, "ending_column": 101}, "type_specific_fields": {"parent": {"type": "contract", "name": "IGaugeController", "source_mapping": {"start": 370, "length": 402, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "starting_column": 1, "ending_column": 2}}, "signature": "gauge_relative_weight(address,uint256)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function IGaugeController.gauge_relative_weight(address,uint256) (contracts/interfaces/CoreModuleInterfaces.sol#24) is not in mixedCase\n", "markdown": "Function [IGaugeController.gauge_relative_weight(address,uint256)](contracts/interfaces/CoreModuleInterfaces.sol#L24) is not in mixedCase\n", "first_markdown_element": "contracts/interfaces/CoreModuleInterfaces.sol#L24", "id": "f6fec9ff14b0c23cfd9be775c6fc563ef0e7693a0b8cb8ccc4d7a8f5ec335291", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "deposit_reward_token", "source_mapping": {"start": 839, "length": 78, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [29], "starting_column": 5, "ending_column": 83}, "type_specific_fields": {"parent": {"type": "contract", "name": "ILiquidityGauge", "source_mapping": {"start": 774, "length": 145, "filename_relative": "contracts/interfaces/CoreModuleInterfaces.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/CoreModuleInterfaces.sol", "filename_short": "contracts/interfaces/CoreModuleInterfaces.sol", "is_dependency": false, "lines": [27, 28, 29, 30], "starting_column": 1, "ending_column": 2}}, "signature": "deposit_reward_token(address,uint256)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ILiquidityGauge.deposit_reward_token(address,uint256) (contracts/interfaces/CoreModuleInterfaces.sol#29) is not in mixedCase\n", "markdown": "Function [ILiquidityGauge.deposit_reward_token(address,uint256)](contracts/interfaces/CoreModuleInterfaces.sol#L29) is not in mixedCase\n", "first_markdown_element": "contracts/interfaces/CoreModuleInterfaces.sol#L29", "id": "84e6f1bf4d1c9831d97f575caee7543adc3c25f28a0a1b9be5125d5e71c42841", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_rewardToken", "source_mapping": {"start": 4099, "length": 20, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [86], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._rewardToken (contracts/mock/AngleDistributor.sol#86) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._rewardToken](contracts/mock/AngleDistributor.sol#L86) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L86", "id": "629dd8b658c0f4d7e46d3ee056039b8459a0f66be9f7e72e2a62047dc39080fb", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_controller", "source_mapping": {"start": 4129, "length": 19, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [87], "starting_column": 9, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._controller (contracts/mock/AngleDistributor.sol#87) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._controller](contracts/mock/AngleDistributor.sol#L87) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L87", "id": "7eb39d06b9da5e594040ad318f2d0149daae609e0c171616de360d8859a7eb1f", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_initialRate", "source_mapping": {"start": 4158, "length": 20, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [88], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._initialRate (contracts/mock/AngleDistributor.sol#88) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._initialRate](contracts/mock/AngleDistributor.sol#L88) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L88", "id": "2f9d40151518b7009e5c399736a0c69ece9b6c9094cf8d6dc4e2f18a8a810bd7", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_startEpochSupply", "source_mapping": {"start": 4188, "length": 25, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [89], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._startEpochSupply (contracts/mock/AngleDistributor.sol#89) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._startEpochSupply](contracts/mock/AngleDistributor.sol#L89) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L89", "id": "300240cdaeb37bc252be53adf575df3f8a557ed06164be40590e6340a9eee3c3", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 4275, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [92], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._delegateGauge (contracts/mock/AngleDistributor.sol#92) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._delegateGauge](contracts/mock/AngleDistributor.sol#L92) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L92", "id": "02381ce8c61d1ff5fc875dc43e66c2a779d7d5e6344a397e0ca917acde4cc5cc", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_controller", "source_mapping": {"start": 16482, "length": 19, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [331], "starting_column": 33, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "setGaugeController", "source_mapping": {"start": 16454, "length": 240, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [331, 332, 333, 334, 335], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "setGaugeController(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.setGaugeController(address)._controller (contracts/mock/AngleDistributor.sol#331) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.setGaugeController(address)._controller](contracts/mock/AngleDistributor.sol#L331) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L331", "id": "18f4dbd1998014ab9ce188a8120cc76129131388656c3032ffa1887d1e50849b", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 17561, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [347], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "setDelegateGauge", "source_mapping": {"start": 17499, "length": 482, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "setDelegateGauge(address,address,bool)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.setDelegateGauge(address,address,bool)._delegateGauge (contracts/mock/AngleDistributor.sol#347) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.setDelegateGauge(address,address,bool)._delegateGauge](contracts/mock/AngleDistributor.sol#L347) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L347", "id": "993cd6ed6fec80fddc9cde037193812479ef04a789ffef97c40b0dbb0d394117", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_newRate", "source_mapping": {"start": 18769, "length": 16, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [371], "starting_column": 22, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "setRate", "source_mapping": {"start": 18752, "length": 555, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "setRate(uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.setRate(uint256)._newRate (contracts/mock/AngleDistributor.sol#371) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.setRate(uint256)._newRate](contracts/mock/AngleDistributor.sol#L371) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L371", "id": "4e7170a3bbce3c227a68854d7fa7e39ad0fc14d8d110ea5db756ed10eb6d8f62", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 21283, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [416], "starting_column": 35, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "toggleInterfaceKnown", "source_mapping": {"start": 21253, "length": 141, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [416, 417, 418], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleInterfaceKnown(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter AngleDistributor.toggleInterfaceKnown(address)._delegateGauge (contracts/mock/AngleDistributor.sol#416) is not in mixedCase\n", "markdown": "Parameter [AngleDistributor.toggleInterfaceKnown(address)._delegateGauge](contracts/mock/AngleDistributor.sol#L416) is not in mixedCase\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L416", "id": "5cf7e15dd9696c0906dd23a2d381525d187ec397dbb84f4c25aedc801c2c59ed", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_angleDistributorAddress", "source_mapping": {"start": 614, "length": 32, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [23], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "setAddresses", "source_mapping": {"start": 583, "length": 280, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockMerklGaugeMiddleman", "source_mapping": {"start": 111, "length": 754, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 1, "ending_column": 2}}, "signature": "setAddresses(address,IERC20,DistributionCreator)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._angleDistributorAddress (contracts/mock/MockMerklGaugeMiddleman.sol#23) is not in mixedCase\n", "markdown": "Parameter [MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._angleDistributorAddress](contracts/mock/MockMerklGaugeMiddleman.sol#L23) is not in mixedCase\n", "first_markdown_element": "contracts/mock/MockMerklGaugeMiddleman.sol#L23", "id": "9f842f5dc4a201417e6232a54e0d0aa80e03fa8769a8ecc94e84f75803daebe4", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_angleAddress", "source_mapping": {"start": 656, "length": 20, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [24], "starting_column": 9, "ending_column": 29}, "type_specific_fields": {"parent": {"type": "function", "name": "setAddresses", "source_mapping": {"start": 583, "length": 280, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockMerklGaugeMiddleman", "source_mapping": {"start": 111, "length": 754, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 1, "ending_column": 2}}, "signature": "setAddresses(address,IERC20,DistributionCreator)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._angleAddress (contracts/mock/MockMerklGaugeMiddleman.sol#24) is not in mixedCase\n", "markdown": "Parameter [MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._angleAddress](contracts/mock/MockMerklGaugeMiddleman.sol#L24) is not in mixedCase\n", "first_markdown_element": "contracts/mock/MockMerklGaugeMiddleman.sol#L24", "id": "9c587d34a9627b71a8afe5b5ab2fee61269bc5128b7a9fc47cff0c802c8b76dd", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_manager", "source_mapping": {"start": 686, "length": 28, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [25], "starting_column": 9, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "setAddresses", "source_mapping": {"start": 583, "length": 280, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockMerklGaugeMiddleman", "source_mapping": {"start": 111, "length": 754, "filename_relative": "contracts/mock/MockMerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockMerklGaugeMiddleman.sol", "filename_short": "contracts/mock/MockMerklGaugeMiddleman.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 1, "ending_column": 2}}, "signature": "setAddresses(address,IERC20,DistributionCreator)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._manager (contracts/mock/MockMerklGaugeMiddleman.sol#25) is not in mixedCase\n", "markdown": "Parameter [MockMerklGaugeMiddleman.setAddresses(address,IERC20,DistributionCreator)._manager](contracts/mock/MockMerklGaugeMiddleman.sol#L25) is not in mixedCase\n", "first_markdown_element": "contracts/mock/MockMerklGaugeMiddleman.sol#L25", "id": "d84cb6b2070f643026a6b7e9d5a1b70a58b5780bbdbf49d9374a960e85361163", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_treasury", "source_mapping": {"start": 1456, "length": 17, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [55], "starting_column": 26, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "setTreasury", "source_mapping": {"start": 1435, "length": 84, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [55, 56, 57], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockToken", "source_mapping": {"start": 119, "length": 1402, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "starting_column": 1, "ending_column": 2}}, "signature": "setTreasury(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter MockToken.setTreasury(address)._treasury (contracts/mock/MockToken.sol#55) is not in mixedCase\n", "markdown": "Parameter [MockToken.setTreasury(address)._treasury](contracts/mock/MockToken.sol#L55) is not in mixedCase\n", "first_markdown_element": "contracts/mock/MockToken.sol#L55", "id": "1a3e2f4c9b1ca8c01afc2060c30f514974497119ed5c6d6d20a8a2e6cc8a761b", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_treasury", "source_mapping": {"start": 1716, "length": 17, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [61], "starting_column": 26, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "setTreasury", "source_mapping": {"start": 1695, "length": 84, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [61, 62, 63], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "setTreasury(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter MockTokenPermit.setTreasury(address)._treasury (contracts/mock/MockTokenPermit.sol#61) is not in mixedCase\n", "markdown": "Parameter [MockTokenPermit.setTreasury(address)._treasury](contracts/mock/MockTokenPermit.sol#L61) is not in mixedCase\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L61", "id": "e4c727a827dc3f3a25ab5b209b940a6ea2b829dda3770a6d0d5b2386b5c12fc1", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_fees", "source_mapping": {"start": 1802, "length": 13, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [65], "starting_column": 22, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "function", "name": "setFees", "source_mapping": {"start": 1785, "length": 68, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}, "signature": "setFees(uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter MockTokenPermit.setFees(uint256)._fees (contracts/mock/MockTokenPermit.sol#65) is not in mixedCase\n", "markdown": "Parameter [MockTokenPermit.setFees(uint256)._fees](contracts/mock/MockTokenPermit.sol#L65) is not in mixedCase\n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L65", "id": "5d5c1622ed7028d5d9ca8b274550d3a50af5b71a6f456805bd79b8da796ccf8f", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ERC1967Upgrade_init", "source_mapping": {"start": 677, "length": 66, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [21, 22], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC1967Upgrade_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init() (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#21-22) is not in mixedCase\n", "markdown": "Function [ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init()](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L21-L22) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L21-L22", "id": "c342a80969d569f908a2cc5e14462dacdf5979e90597c95494a7518ab22ac361", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ERC1967Upgrade_init_unchained", "source_mapping": {"start": 749, "length": 76, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [24, 25], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC1967Upgrade_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#24-25) is not in mixedCase\n", "markdown": "Function [ERC1967UpgradeUpgradeable.__ERC1967Upgrade_init_unchained()](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L24-L25) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L24-L25", "id": "29c5a9e0594a34ab55098292b0786be5a1f49f1e651ab7af2a669ca40aceb7cb", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 7808, "length": 25, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [211], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967UpgradeUpgradeable", "source_mapping": {"start": 610, "length": 7226, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable ERC1967UpgradeUpgradeable.__gap (node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#211) is not in mixedCase\n", "markdown": "Variable [ERC1967UpgradeUpgradeable.__gap](node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L211) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol#L211", "id": "7a925ee243c35fcbf7d26a13c9439f5f52653d41557544bf25a6dea8e1255a36", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__UUPSUpgradeable_init", "source_mapping": {"start": 1042, "length": 67, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [23, 24], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "UUPSUpgradeable", "source_mapping": {"start": 928, "length": 3829, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "__UUPSUpgradeable_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function UUPSUpgradeable.__UUPSUpgradeable_init() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#23-24) is not in mixedCase\n", "markdown": "Function [UUPSUpgradeable.__UUPSUpgradeable_init()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L23-L24) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L23-L24", "id": "cb76c4a025b81b1d34120a39f72a25e8426de1c2f55fbd29d6a5eb8442335219", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__UUPSUpgradeable_init_unchained", "source_mapping": {"start": 1115, "length": 77, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "UUPSUpgradeable", "source_mapping": {"start": 928, "length": 3829, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "__UUPSUpgradeable_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function UUPSUpgradeable.__UUPSUpgradeable_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#26-27) is not in mixedCase\n", "markdown": "Function [UUPSUpgradeable.__UUPSUpgradeable_init_unchained()](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L26-L27) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L26-L27", "id": "8ff7b5e08e6880768da974c4a296eba4ffa484881ed81786ba37c7da4749321d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__self", "source_mapping": {"start": 1289, "length": 48, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [29], "starting_column": 5, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "contract", "name": "UUPSUpgradeable", "source_mapping": {"start": 928, "length": 3829, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable UUPSUpgradeable.__self (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#29) is not in mixedCase\n", "markdown": "Variable [UUPSUpgradeable.__self](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L29) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L29", "id": "bfe49cc9b28397f73932ef963ff532a1f0ce51ddd0b26dae025d661602049864", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 4729, "length": 25, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [107], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "UUPSUpgradeable", "source_mapping": {"start": 928, "length": 3829, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable UUPSUpgradeable.__gap (node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#107) is not in mixedCase\n", "markdown": "Variable [UUPSUpgradeable.__gap](node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L107) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol#L107", "id": "66e89635b3f1a39420c14852bce53cece9d715d261ed362fdfe323326d902681", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ReentrancyGuard_init", "source_mapping": {"start": 1868, "length": 111, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "__ReentrancyGuard_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#40-42) is not in mixedCase\n", "markdown": "Function [ReentrancyGuardUpgradeable.__ReentrancyGuard_init()](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L40-L42) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L40-L42", "id": "8358359e33b12b973b39646749b14bc461ec4795e26f2669ed0c3b687a34fd7c", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ReentrancyGuard_init_unchained", "source_mapping": {"start": 1985, "length": 109, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [44, 45, 46], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}, "signature": "__ReentrancyGuard_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#44-46) is not in mixedCase\n", "markdown": "Function [ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained()](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L44-L46) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L44-L46", "id": "3e75801ad9978e638414efcd60e7f0073b008a621502b3366b5fb8e7ac736ea4", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 3347, "length": 25, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [80], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "ReentrancyGuardUpgradeable", "source_mapping": {"start": 931, "length": 2444, "filename_relative": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "filename_short": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol", "is_dependency": false, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable ReentrancyGuardUpgradeable.__gap (node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#80) is not in mixedCase\n", "markdown": "Variable [ReentrancyGuardUpgradeable.__gap](node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L80) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#L80", "id": "986ae09dbfc7cd653b3ef951464dacdcf741b823cf0590804bd79e4641ef863a", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "DOMAIN_SEPARATOR", "source_mapping": {"start": 2879, "length": 113, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [81, 82, 83], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Permit", "source_mapping": {"start": 865, "length": 2463, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 1, "ending_column": 2}}, "signature": "DOMAIN_SEPARATOR()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC20Permit.DOMAIN_SEPARATOR() (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#81-83) is not in mixedCase\n", "markdown": "Function [ERC20Permit.DOMAIN_SEPARATOR()](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L81-L83) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L81-L83", "id": "ae3f36aabe9ce571b2d0bac868aa8ddd745117bd041ef8300b9798601ba580ca", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_PERMIT_TYPEHASH_DEPRECATED_SLOT", "source_mapping": {"start": 1549, "length": 48, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [37], "starting_column": 5, "ending_column": 53}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Permit", "source_mapping": {"start": 865, "length": 2463, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol", "is_dependency": false, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable ERC20Permit._PERMIT_TYPEHASH_DEPRECATED_SLOT (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#37) is not in mixedCase\n", "markdown": "Variable [ERC20Permit._PERMIT_TYPEHASH_DEPRECATED_SLOT](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L37) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol#L37", "id": "990853bbc0fd69516fdff053b807fb18ef8bb77731b845eb103d0c55cb82e94f", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "DOMAIN_SEPARATOR", "source_mapping": {"start": 2189, "length": 60, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "is_dependency": false, "lines": [59], "starting_column": 5, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "contract", "name": "IERC20Permit", "source_mapping": {"start": 620, "length": 1631, "filename_relative": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "filename_short": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", "is_dependency": false, "lines": [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], "starting_column": 1, "ending_column": 2}}, "signature": "DOMAIN_SEPARATOR()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function IERC20Permit.DOMAIN_SEPARATOR() (node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#59) is not in mixedCase\n", "markdown": "Function [IERC20Permit.DOMAIN_SEPARATOR()](node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L59) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol#L59", "id": "9a77c79a6cf40e2f151723e49ba63d30100a56d0f72688e58cdf4a550a6ff843", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_CACHED_DOMAIN_SEPARATOR", "source_mapping": {"start": 1572, "length": 50, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [31], "starting_column": 5, "ending_column": 55}, "type_specific_fields": {"parent": {"type": "contract", "name": "EIP712", "source_mapping": {"start": 1304, "length": 3211, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable EIP712._CACHED_DOMAIN_SEPARATOR (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#31) is not in mixedCase\n", "markdown": "Variable [EIP712._CACHED_DOMAIN_SEPARATOR](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L31) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L31", "id": "f27ba4adb32b59400d073508894d8fb5ef55f3fccd5dab06bbf2cf9e1039544c", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_CACHED_CHAIN_ID", "source_mapping": {"start": 1628, "length": 42, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [32], "starting_column": 5, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "contract", "name": "EIP712", "source_mapping": {"start": 1304, "length": 3211, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable EIP712._CACHED_CHAIN_ID (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#32) is not in mixedCase\n", "markdown": "Variable [EIP712._CACHED_CHAIN_ID](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L32) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L32", "id": "a97e63161ef623acbdd63f7c538558da3533514f45901fc0f6063906a6894e7a", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_CACHED_THIS", "source_mapping": {"start": 1676, "length": 38, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [33], "starting_column": 5, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "contract", "name": "EIP712", "source_mapping": {"start": 1304, "length": 3211, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable EIP712._CACHED_THIS (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#33) is not in mixedCase\n", "markdown": "Variable [EIP712._CACHED_THIS](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L33) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L33", "id": "8b510e0c839539a1d34ab204af0ce868c8f93613e56cf050b6107c0d1bef0727", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_HASHED_NAME", "source_mapping": {"start": 1721, "length": 38, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [35], "starting_column": 5, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "contract", "name": "EIP712", "source_mapping": {"start": 1304, "length": 3211, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable EIP712._HASHED_NAME (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#35) is not in mixedCase\n", "markdown": "Variable [EIP712._HASHED_NAME](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L35) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L35", "id": "d95962ad9105e420535beef6f8adb2aef63294fd7b915e33fcc542c62ef06551", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_HASHED_VERSION", "source_mapping": {"start": 1765, "length": 41, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [36], "starting_column": 5, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "contract", "name": "EIP712", "source_mapping": {"start": 1304, "length": 3211, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable EIP712._HASHED_VERSION (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#36) is not in mixedCase\n", "markdown": "Variable [EIP712._HASHED_VERSION](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L36) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L36", "id": "fa2d3018dd91feb3af39c2059f0ca8ab593b4673bb691dcf3117bd6db96f57b9", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_TYPE_HASH", "source_mapping": {"start": 1812, "length": 36, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [37], "starting_column": 5, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "contract", "name": "EIP712", "source_mapping": {"start": 1304, "length": 3211, "filename_relative": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_absolute": "/root/angle/merkl-contracts/node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "filename_short": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol", "is_dependency": false, "lines": [27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable EIP712._TYPE_HASH (node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#37) is not in mixedCase\n", "markdown": "Variable [EIP712._TYPE_HASH](node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L37) is not in mixedCase\n", "first_markdown_element": "node_modules/@openzeppelin/contracts/utils/cryptography/EIP712.sol#L37", "id": "6be82984523d5470fd96feaf305daa098dfccddbff02f47c7369a681372e36e6", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "communityFeeToken0", "source_mapping": {"start": 1426, "length": 24, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [28], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "globalState", "source_mapping": {"start": 1233, "length": 293, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 5, "ending_column": 11}, "type_specific_fields": {"parent": {"type": "contract", "name": "IAlgebraPool", "source_mapping": {"start": 227, "length": 1301, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "starting_column": 1, "ending_column": 2}}, "signature": "globalState()"}}}}, {"type": "variable", "name": "communityFeeToken1", "source_mapping": {"start": 1464, "length": 24, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [29], "starting_column": 13, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "globalState", "source_mapping": {"start": 1233, "length": 293, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 5, "ending_column": 11}, "type_specific_fields": {"parent": {"type": "contract", "name": "IAlgebraPool", "source_mapping": {"start": 227, "length": 1301, "filename_relative": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/interfaces/external/algebra/IAlgebraPool.sol", "filename_short": "contracts/interfaces/external/algebra/IAlgebraPool.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "starting_column": 1, "ending_column": 2}}, "signature": "globalState()"}}}}], "description": "Variable IAlgebraPool.globalState().communityFeeToken0 (contracts/interfaces/external/algebra/IAlgebraPool.sol#28) is too similar to IAlgebraPool.globalState().communityFeeToken1 (contracts/interfaces/external/algebra/IAlgebraPool.sol#29)\n", "markdown": "Variable [IAlgebraPool.globalState().communityFeeToken0](contracts/interfaces/external/algebra/IAlgebraPool.sol#L28) is too similar to [IAlgebraPool.globalState().communityFeeToken1](contracts/interfaces/external/algebra/IAlgebraPool.sol#L29)\n", "first_markdown_element": "contracts/interfaces/external/algebra/IAlgebraPool.sol#L28", "id": "a8cc52c7aa02d93f59a85dc43959f8cbedb9e956f1ab4aa0f820c7974120cb1e", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 17561, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [347], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "setDelegateGauge", "source_mapping": {"start": 17499, "length": 482, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "setDelegateGauge(address,address,bool)"}}}}, {"type": "variable", "name": "delegateGauges", "source_mapping": {"start": 1843, "length": 49, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [41], "starting_column": 5, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}}}], "description": "Variable AngleDistributor.setDelegateGauge(address,address,bool)._delegateGauge (contracts/mock/AngleDistributor.sol#347) is too similar to AngleDistributor.delegateGauges (contracts/mock/AngleDistributor.sol#41)\n", "markdown": "Variable [AngleDistributor.setDelegateGauge(address,address,bool)._delegateGauge](contracts/mock/AngleDistributor.sol#L347) is too similar to [AngleDistributor.delegateGauges](contracts/mock/AngleDistributor.sol#L41)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L347", "id": "10ac1adcb3d9ea200ea8c13e12f05bf76a8e5766d32805cbf339c6b1c2b7cbb5", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 12324, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [250], "starting_column": 36, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "_toggleInterfaceKnown", "source_mapping": {"start": 12293, "length": 279, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [250, 251, 252, 253, 254], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "_toggleInterfaceKnown(address)"}}}}, {"type": "variable", "name": "delegateGauges", "source_mapping": {"start": 1843, "length": 49, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [41], "starting_column": 5, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}}}], "description": "Variable AngleDistributor._toggleInterfaceKnown(address)._delegateGauge (contracts/mock/AngleDistributor.sol#250) is too similar to AngleDistributor.delegateGauges (contracts/mock/AngleDistributor.sol#41)\n", "markdown": "Variable [AngleDistributor._toggleInterfaceKnown(address)._delegateGauge](contracts/mock/AngleDistributor.sol#L250) is too similar to [AngleDistributor.delegateGauges](contracts/mock/AngleDistributor.sol#L41)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L250", "id": "15df7af6579d41e7e2bf243380d05072713a8336e0122048b6b6458b9ec360e4", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 4275, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [92], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 4070, "length": 1069, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(address,address,uint256,uint256,address,address,address)"}}}}, {"type": "variable", "name": "delegateGauges", "source_mapping": {"start": 1843, "length": 49, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [41], "starting_column": 5, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}}}], "description": "Variable AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._delegateGauge (contracts/mock/AngleDistributor.sol#92) is too similar to AngleDistributor.delegateGauges (contracts/mock/AngleDistributor.sol#41)\n", "markdown": "Variable [AngleDistributor.initialize(address,address,uint256,uint256,address,address,address)._delegateGauge](contracts/mock/AngleDistributor.sol#L92) is too similar to [AngleDistributor.delegateGauges](contracts/mock/AngleDistributor.sol#L41)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L92", "id": "96a729e97b11391119529a47b4774273c15e5d589577ba9e303c148fbe748db7", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_delegateGauge", "source_mapping": {"start": 21283, "length": 22, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [416], "starting_column": 35, "ending_column": 57}, "type_specific_fields": {"parent": {"type": "function", "name": "toggleInterfaceKnown", "source_mapping": {"start": 21253, "length": 141, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [416, 417, 418], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}, "signature": "toggleInterfaceKnown(address)"}}}}, {"type": "variable", "name": "delegateGauges", "source_mapping": {"start": 1843, "length": 49, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [41], "starting_column": 5, "ending_column": 54}, "type_specific_fields": {"parent": {"type": "contract", "name": "AngleDistributor", "source_mapping": {"start": 550, "length": 20846, "filename_relative": "contracts/mock/AngleDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/AngleDistributor.sol", "filename_short": "contracts/mock/AngleDistributor.sol", "is_dependency": false, "lines": [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419], "starting_column": 1, "ending_column": 2}}}}], "description": "Variable AngleDistributor.toggleInterfaceKnown(address)._delegateGauge (contracts/mock/AngleDistributor.sol#416) is too similar to AngleDistributor.delegateGauges (contracts/mock/AngleDistributor.sol#41)\n", "markdown": "Variable [AngleDistributor.toggleInterfaceKnown(address)._delegateGauge](contracts/mock/AngleDistributor.sol#L416) is too similar to [AngleDistributor.delegateGauges](contracts/mock/AngleDistributor.sol#L41)\n", "first_markdown_element": "contracts/mock/AngleDistributor.sol#L416", "id": "5f27ab4e002d043f9049f1ce7ad8abe07f3d2eb74277f053cbdb40f08edc9bc7", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "_vaultManager1", "source_mapping": {"start": 389, "length": 22, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [17], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}, {"type": "variable", "name": "_vaultManager2", "source_mapping": {"start": 421, "length": 22, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [18], "starting_column": 9, "ending_column": 31}, "type_specific_fields": {"parent": {"type": "function", "name": "constructor", "source_mapping": {"start": 285, "length": 424, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}, "signature": "constructor(address,address,address,address,address,address)"}}}}], "description": "Variable MockTreasury.constructor(address,address,address,address,address,address)._vaultManager1 (contracts/mock/MockTreasury.sol#17) is too similar to MockTreasury.constructor(address,address,address,address,address,address)._vaultManager2 (contracts/mock/MockTreasury.sol#18)\n", "markdown": "Variable [MockTreasury.constructor(address,address,address,address,address,address)._vaultManager1](contracts/mock/MockTreasury.sol#L17) is too similar to [MockTreasury.constructor(address,address,address,address,address,address)._vaultManager2](contracts/mock/MockTreasury.sol#L18)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L17", "id": "1afa5b675a42e16789d9ca1211f442804c1023d3dc1ae0810d0d43cb6b364269", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "vaultManager1", "source_mapping": {"start": 180, "length": 28, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [9], "starting_column": 5, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}, {"type": "variable", "name": "vaultManager2", "source_mapping": {"start": 214, "length": 28, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [10], "starting_column": 5, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "Variable MockTreasury.vaultManager1 (contracts/mock/MockTreasury.sol#9) is too similar to MockTreasury.vaultManager2 (contracts/mock/MockTreasury.sol#10)\n", "markdown": "Variable [MockTreasury.vaultManager1](contracts/mock/MockTreasury.sol#L9) is too similar to [MockTreasury.vaultManager2](contracts/mock/MockTreasury.sol#L10)\n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L9", "id": "fc9a579e47227087c25908d38a0731ff4de0e09c3461511558b7905ced8cc3bb", "check": "similar-names", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 7383, "length": 25, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [121], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}}}, {"type": "contract", "name": "DistributionCreator", "source_mapping": {"start": 5042, "length": 33106, "filename_relative": "contracts/DistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/DistributionCreator.sol", "filename_short": "contracts/DistributionCreator.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756], "starting_column": 1, "ending_column": 2}}], "description": "DistributionCreator.__gap (contracts/DistributionCreator.sol#121) is never used in DistributionCreator (contracts/DistributionCreator.sol#63-756)\n", "markdown": "[DistributionCreator.__gap](contracts/DistributionCreator.sol#L121) is never used in [DistributionCreator](contracts/DistributionCreator.sol#L63-L756)\n", "first_markdown_element": "contracts/DistributionCreator.sol#L121", "id": "232e086740d9f6ae47933e563f89cb83aaed424ea277bd3546ba871f964d5404", "check": "unused-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 6208, "length": 25, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [108], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}}}, {"type": "contract", "name": "Distributor", "source_mapping": {"start": 4614, "length": 12340, "filename_relative": "contracts/Distributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/Distributor.sol", "filename_short": "contracts/Distributor.sol", "is_dependency": false, "lines": [63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348], "starting_column": 1, "ending_column": 2}}], "description": "Distributor.__gap (contracts/Distributor.sol#108) is never used in Distributor (contracts/Distributor.sol#63-348)\n", "markdown": "[Distributor.__gap](contracts/Distributor.sol#L108) is never used in [Distributor](contracts/Distributor.sol#L63-L348)\n", "first_markdown_element": "contracts/Distributor.sol#L108", "id": "9cc3c9af29e4ce185c208217e2910da8481577b9416d3215ebc8be6c760d0d30", "check": "unused-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 6967, "length": 25, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [115], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}}}, {"type": "contract", "name": "OldDistributionCreator", "source_mapping": {"start": 4623, "length": 22930, "filename_relative": "contracts/deprecated/OldDistributionCreator.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributionCreator.sol", "filename_short": "contracts/deprecated/OldDistributionCreator.sol", "is_dependency": false, "lines": [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541], "starting_column": 1, "ending_column": 2}}], "description": "OldDistributionCreator.__gap (contracts/deprecated/OldDistributionCreator.sol#115) is never used in OldDistributionCreator (contracts/deprecated/OldDistributionCreator.sol#57-541)\n", "markdown": "[OldDistributionCreator.__gap](contracts/deprecated/OldDistributionCreator.sol#L115) is never used in [OldDistributionCreator](contracts/deprecated/OldDistributionCreator.sol#L57-L541)\n", "first_markdown_element": "contracts/deprecated/OldDistributionCreator.sol#L115", "id": "f76d18e02f7039eb1edf5410e33dcb0d017e759d2a7bd17c22baf0a0bdd123bf", "check": "unused-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "__gap", "source_mapping": {"start": 6024, "length": 25, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [104], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}}}, {"type": "contract", "name": "OldDistributor", "source_mapping": {"start": 4541, "length": 11462, "filename_relative": "contracts/deprecated/OldDistributor.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/deprecated/OldDistributor.sol", "filename_short": "contracts/deprecated/OldDistributor.sol", "is_dependency": false, "lines": [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330], "starting_column": 1, "ending_column": 2}}], "description": "OldDistributor.__gap (contracts/deprecated/OldDistributor.sol#104) is never used in OldDistributor (contracts/deprecated/OldDistributor.sol#62-330)\n", "markdown": "[OldDistributor.__gap](contracts/deprecated/OldDistributor.sol#L104) is never used in [OldDistributor](contracts/deprecated/OldDistributor.sol#L62-L330)\n", "first_markdown_element": "contracts/deprecated/OldDistributor.sol#L104", "id": "ad274a524ec4d1a425ce7c5126c8b62445dd7363771e26071cf8eb0811dfecfa", "check": "unused-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "reverts", "source_mapping": {"start": 640, "length": 19, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [20], "starting_column": 5, "ending_column": 24}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTokenPermit.reverts (contracts/mock/MockTokenPermit.sol#20) should be constant \n", "markdown": "[MockTokenPermit.reverts](contracts/mock/MockTokenPermit.sol#L20) should be constant \n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L20", "id": "0c88b72ae2aed9112e781905aa99fffa8381fd0c7be033eb24563dcbcae2d39d", "check": "constable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "fee", "source_mapping": {"start": 199, "length": 18, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [9], "starting_column": 5, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockUniswapV3Pool", "source_mapping": {"start": 62, "length": 428, "filename_relative": "contracts/mock/MockUniswapV3Pool.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockUniswapV3Pool.sol", "filename_short": "contracts/mock/MockUniswapV3Pool.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}}}], "description": "MockUniswapV3Pool.fee (contracts/mock/MockUniswapV3Pool.sol#9) should be constant \n", "markdown": "[MockUniswapV3Pool.fee](contracts/mock/MockUniswapV3Pool.sol#L9) should be constant \n", "first_markdown_element": "contracts/mock/MockUniswapV3Pool.sol#L9", "id": "06c089cc1232466d7eb294acdfb36aa895a4890f941107549c081cb9600c1cc1", "check": "constable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "accessControlManager", "source_mapping": {"start": 4470, "length": 33, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [55], "starting_column": 5, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "contract", "name": "MerklGaugeMiddleman", "source_mapping": {"start": 4267, "length": 4150, "filename_relative": "contracts/middleman/MerklGaugeMiddleman.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/middleman/MerklGaugeMiddleman.sol", "filename_short": "contracts/middleman/MerklGaugeMiddleman.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}}}], "description": "MerklGaugeMiddleman.accessControlManager (contracts/middleman/MerklGaugeMiddleman.sol#55) should be immutable \n", "markdown": "[MerklGaugeMiddleman.accessControlManager](contracts/middleman/MerklGaugeMiddleman.sol#L55) should be immutable \n", "first_markdown_element": "contracts/middleman/MerklGaugeMiddleman.sol#L55", "id": "d3f61f5d4acbcc8953212d523b631fd9b2d0efaab7c57c2d17c5ac590673527d", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_decimal", "source_mapping": {"start": 321, "length": 23, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [12], "starting_column": 5, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockToken", "source_mapping": {"start": 119, "length": 1402, "filename_relative": "contracts/mock/MockToken.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockToken.sol", "filename_short": "contracts/mock/MockToken.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "starting_column": 1, "ending_column": 2}}}}], "description": "MockToken._decimal (contracts/mock/MockToken.sol#12) should be immutable \n", "markdown": "[MockToken._decimal](contracts/mock/MockToken.sol#L12) should be immutable \n", "first_markdown_element": "contracts/mock/MockToken.sol#L12", "id": "d04ae3b76427e8d442aa93b67ca6706cd7ee13506ef00bcf9d9c25d92704fe0f", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_decimal", "source_mapping": {"start": 511, "length": 23, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [15], "starting_column": 5, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTokenPermit", "source_mapping": {"start": 265, "length": 2512, "filename_relative": "contracts/mock/MockTokenPermit.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTokenPermit.sol", "filename_short": "contracts/mock/MockTokenPermit.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTokenPermit._decimal (contracts/mock/MockTokenPermit.sol#15) should be immutable \n", "markdown": "[MockTokenPermit._decimal](contracts/mock/MockTokenPermit.sol#L15) should be immutable \n", "first_markdown_element": "contracts/mock/MockTokenPermit.sol#L15", "id": "7d38df56cf96afa6f3971ce0bac617c53af1edb4f2ead4eb0f7e3249b00d5357", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "flashLoanModule", "source_mapping": {"start": 248, "length": 30, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [11], "starting_column": 5, "ending_column": 35}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTreasury.flashLoanModule (contracts/mock/MockTreasury.sol#11) should be immutable \n", "markdown": "[MockTreasury.flashLoanModule](contracts/mock/MockTreasury.sol#L11) should be immutable \n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L11", "id": "a9277bd615d7db5c958af7bc9cc22d23b8d2f27006e7c5328cc122339f65c47b", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "governor", "source_mapping": {"start": 122, "length": 23, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [7], "starting_column": 5, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTreasury.governor (contracts/mock/MockTreasury.sol#7) should be immutable \n", "markdown": "[MockTreasury.governor](contracts/mock/MockTreasury.sol#L7) should be immutable \n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L7", "id": "3bc3579fcce8bd3e7e2ca7071aef9b96ca8b76196ec205a34acea52277ff18d2", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "guardian", "source_mapping": {"start": 151, "length": 23, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [8], "starting_column": 5, "ending_column": 28}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTreasury.guardian (contracts/mock/MockTreasury.sol#8) should be immutable \n", "markdown": "[MockTreasury.guardian](contracts/mock/MockTreasury.sol#L8) should be immutable \n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L8", "id": "91c68dd14f1ab171771926a27bae8e890acf1dd1a5cf15355ffcf589d9479ad3", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "stablecoin", "source_mapping": {"start": 91, "length": 25, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [6], "starting_column": 5, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTreasury.stablecoin (contracts/mock/MockTreasury.sol#6) should be immutable \n", "markdown": "[MockTreasury.stablecoin](contracts/mock/MockTreasury.sol#L6) should be immutable \n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L6", "id": "b8802b6009c41ca4cb4f33d76da48d85ff1658777d1548dfc8b85210be2645cf", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "vaultManager1", "source_mapping": {"start": 180, "length": 28, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [9], "starting_column": 5, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTreasury.vaultManager1 (contracts/mock/MockTreasury.sol#9) should be immutable \n", "markdown": "[MockTreasury.vaultManager1](contracts/mock/MockTreasury.sol#L9) should be immutable \n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L9", "id": "212e1ca19d25331be343b985573e5e91f06083f36736d2f8422f355ab0297203", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}, {"elements": [{"type": "variable", "name": "vaultManager2", "source_mapping": {"start": 214, "length": 28, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [10], "starting_column": 5, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "contract", "name": "MockTreasury", "source_mapping": {"start": 63, "length": 905, "filename_relative": "contracts/mock/MockTreasury.sol", "filename_absolute": "/root/angle/merkl-contracts/contracts/mock/MockTreasury.sol", "filename_short": "contracts/mock/MockTreasury.sol", "is_dependency": false, "lines": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "starting_column": 1, "ending_column": 2}}}}], "description": "MockTreasury.vaultManager2 (contracts/mock/MockTreasury.sol#10) should be immutable \n", "markdown": "[MockTreasury.vaultManager2](contracts/mock/MockTreasury.sol#L10) should be immutable \n", "first_markdown_element": "contracts/mock/MockTreasury.sol#L10", "id": "f7b25dc04f0a6bee95d47cc24f205191273633b6a3806fd96f438f23f7c64172", "check": "immutable-states", "impact": "Optimization", "confidence": "High"}] \ No newline at end of file diff --git a/test/deprecated/hardhat/tokenWrappers/pufferPointTokenWrapper.test.ts b/test/deprecated/hardhat/tokenWrappers/pufferPointTokenWrapper.test.ts deleted file mode 100644 index cd04a69e..00000000 --- a/test/deprecated/hardhat/tokenWrappers/pufferPointTokenWrapper.test.ts +++ /dev/null @@ -1,248 +0,0 @@ -/* -// TODO: write tests back in Foundry -import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; -import { expect } from 'chai'; -import { parseEther, solidityKeccak256 } from 'ethers/lib/utils'; -import hre, { contract, ethers, web3,network } from 'hardhat'; -import { Signer } from 'ethers'; - -import { - DistributionCreator, - DistributionCreator__factory, - MockCoreBorrow, - MockCoreBorrow__factory, - MockToken, - MockToken__factory, - MockUniswapV3Pool, - MockUniswapV3Pool__factory, - PufferPointTokenWrapper, - PufferPointTokenWrapper__factory -} from '../../../typechain'; -import { parseAmount } from '../../../utils/bignumber'; -import { inReceipt } from '../utils/expectEvent'; -import { deployUpgradeableUUPS, increaseTime, latestTime, MAX_UINT256, ZERO_ADDRESS } from '../utils/helpers'; - -contract('PufferPointTokenWrapper', () => { - let deployer: SignerWithAddress; - let alice: SignerWithAddress; - let bob: SignerWithAddress; - let governor: string; - let guardian: string; - let distributor: string; - let distributionCreator: string; - let feeRecipient: string; - let angle: MockToken; - let agEUR: MockToken; - let tokenWrapper: PufferPointTokenWrapper; - let cliffDuration: number; - - let manager: DistributionCreator; - let core: MockCoreBorrow; - - const impersonatedSigners: { [key: string]: Signer } = {}; - - beforeEach(async () => { - [deployer, alice, bob] = await ethers.getSigners(); - await network.provider.request({ - method: 'hardhat_reset', - params: [ - { - forking: { - jsonRpcUrl: process.env.ETH_NODE_URI_MAINNET, - blockNumber: 21313975, - }, - }, - ], - }); - // add any addresses you want to impersonate here - governor = '0xdC4e6DFe07EFCa50a197DF15D9200883eF4Eb1c8'; - guardian = '0x0C2553e4B9dFA9f83b1A6D3EAB96c4bAaB42d430'; - distributor = '0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae'; - distributionCreator = '0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd'; - feeRecipient = '0xeaC6A75e19beB1283352d24c0311De865a867DAB' - const impersonatedAddresses = [governor, guardian, distributor, distributionCreator, feeRecipient]; - - for (const address of impersonatedAddresses) { - await hre.network.provider.request({ - method: 'hardhat_impersonateAccount', - params: [address], - }); - await hre.network.provider.send('hardhat_setBalance', [address, '0x10000000000000000000000000000']); - impersonatedSigners[address] = await ethers.getSigner(address); - } - - angle = (await new MockToken__factory(deployer).deploy('ANGLE', 'ANGLE', 18)) as MockToken; - core = (await new MockCoreBorrow__factory(deployer).deploy()) as MockCoreBorrow; - await core.toggleGuardian(guardian); - await core.toggleGovernor(governor); - cliffDuration = 2592000; - - tokenWrapper = (await deployUpgradeableUUPS(new PufferPointTokenWrapper__factory(deployer))) as PufferPointTokenWrapper; - await tokenWrapper.initialize(angle.address, cliffDuration, core.address, distributionCreator); - await angle.mint(alice.address, parseEther('1000')); - }); - describe('upgrade', () => { - it('success - upgrades to new implementation', async () => { - const newImplementation = await new PufferPointTokenWrapper__factory(deployer).deploy(); - await tokenWrapper.connect(impersonatedSigners[governor]).upgradeTo(newImplementation.address); - }); - it('reverts - when called by unallowed address', async () => { - const newImplementation = await new PufferPointTokenWrapper__factory(deployer).deploy(); - await expect(tokenWrapper.connect(alice).upgradeTo(newImplementation.address)).to.be.revertedWithCustomError( - tokenWrapper, - 'NotGovernor', - ); - }); - }); - describe('initializer', () => { - it('success - treasury', async () => { - expect(await tokenWrapper.cliffDuration()).to.be.equal(cliffDuration); - expect(await tokenWrapper.core()).to.be.equal(core.address); - expect(await tokenWrapper.underlying()).to.be.equal(angle.address); - }); - it('reverts - already initialized', async () => { - await expect(tokenWrapper.initialize(angle.address, cliffDuration,core.address, distributionCreator)).to.be.revertedWith( - 'Initializable: contract is already initialized', - ); - }); - it('reverts - zero address', async () => { - const tokenWrapperRevert = (await deployUpgradeableUUPS(new PufferPointTokenWrapper__factory(deployer))) as PufferPointTokenWrapper; - await expect( - tokenWrapperRevert.initialize(ZERO_ADDRESS,cliffDuration, core.address, distributionCreator), - ).to.be.reverted; - }); - }); - describe('createCampaign', () => { - it('success - balance credited', async () => { - await angle.connect(alice).approve(tokenWrapper.address, MAX_UINT256); - await tokenWrapper.connect(alice).transfer(distributor,parseEther('1')); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('1')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('1')); - }); - it('success - balance credited - feeRecipient', async () => { - await angle.connect(alice).approve(tokenWrapper.address, MAX_UINT256); - await tokenWrapper.connect(alice).transfer(feeRecipient,parseEther('1')); - expect(await tokenWrapper.balanceOf(feeRecipient)).to.be.equal(0); - expect(await angle.balanceOf(feeRecipient)).to.be.equal(parseEther('1')); - }); - it('reverts - when other contract', async () => { - await angle.connect(alice).approve(tokenWrapper.address, MAX_UINT256); - await expect(tokenWrapper.connect(alice).transfer(governor,parseEther('1'))).to.be.reverted; - }); - }); - describe('claimRewards', () => { - it('success - balance credited', async () => { - await angle.connect(alice).approve(tokenWrapper.address, MAX_UINT256); - await tokenWrapper.connect(alice).transfer(distributor,parseEther('1')); - await tokenWrapper.connect(impersonatedSigners[distributor]).transfer(bob.address, parseEther('0.5')); - const endData = await latestTime(); - expect(await tokenWrapper.balanceOf(bob.address)).to.be.equal(0); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.5')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('1')); - - const vestings = await tokenWrapper.getUserVestings(bob.address); - expect(vestings[0][0].amount).to.be.equal(parseEther('0.5')); - expect(vestings[0][0].unlockTimestamp).to.be.equal(endData+cliffDuration); - expect(vestings[1]).to.be.equal(0); - - await increaseTime(cliffDuration/2); - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(0); - await increaseTime(cliffDuration*2); - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(parseEther('0.5')); - await tokenWrapper.claim(bob.address); - expect(await angle.balanceOf(bob.address)).to.be.equal(parseEther('0.5')) - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.5')); - - const vestings2 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings2[0][0].amount).to.be.equal(parseEther('0.5')); - expect(vestings2[0][0].unlockTimestamp).to.be.equal(endData+cliffDuration); - expect(vestings2[1]).to.be.equal(1); - - await tokenWrapper.connect(impersonatedSigners[distributor]).transfer(bob.address, parseEther('0.2')); - const endTime2 = await latestTime(); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.3')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.5')); - const vestings3 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings3[0][1].amount).to.be.equal(parseEther('0.2')); - expect(vestings3[0][1].unlockTimestamp).to.be.equal(endTime2+cliffDuration); - expect(vestings3[1]).to.be.equal(1); - - await increaseTime(cliffDuration/2); - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(0); - await tokenWrapper.connect(impersonatedSigners[distributor]).transfer(bob.address, parseEther('0.12')); - const endTime3 = await latestTime(); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.18')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.5')); - - const vestings4 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings4[0][1].amount).to.be.equal(parseEther('0.2')); - expect(vestings4[0][1].unlockTimestamp).to.be.equal(endTime2+cliffDuration); - expect(vestings4[1]).to.be.equal(1); - expect(vestings4[0][2].amount).to.be.equal(parseEther('0.12')); - expect(vestings4[0][2].unlockTimestamp).to.be.equal(endTime3+cliffDuration); - - await increaseTime(cliffDuration*3/4); - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(parseEther('0.2')); - - await tokenWrapper.claim(bob.address) - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(parseEther('0')); - expect(await angle.balanceOf(bob.address)).to.be.equal(parseEther('0.7')) - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.3')); - - const vestings5 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings5[0][1].amount).to.be.equal(parseEther('0.2')); - expect(vestings5[0][1].unlockTimestamp).to.be.equal(endTime2+cliffDuration); - expect(vestings5[1]).to.be.equal(2); - - await tokenWrapper.connect(impersonatedSigners[distributor]).transfer(bob.address, parseEther('0.1')); - const endTime4 = await latestTime(); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.08')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.3')); - const vestings6 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings6[0][3].amount).to.be.equal(parseEther('0.1')); - expect(vestings6[0][3].unlockTimestamp).to.be.equal(endTime4+cliffDuration); - expect(vestings6[1]).to.be.equal(2); - - await tokenWrapper.connect(impersonatedSigners[distributor]).transfer(alice.address, parseEther('0.05')); - const endTime5 = await latestTime(); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.03')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.3')); - const vestings7 = await tokenWrapper.getUserVestings(alice.address); - expect(vestings7[0][0].amount).to.be.equal(parseEther('0.05')); - expect(vestings7[0][0].unlockTimestamp).to.be.equal(endTime5+cliffDuration); - expect(vestings7[1]).to.be.equal(0); - - await increaseTime(cliffDuration*2); - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(parseEther('0.22')); - expect(await tokenWrapper.claimable(alice.address)).to.be.equal(parseEther('0.05')); - await tokenWrapper.claim(bob.address); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.03')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.08')); - expect(await angle.balanceOf(bob.address)).to.be.equal(parseEther('0.92')); - - const vestings8 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings8[1]).to.be.equal(4); - expect(await tokenWrapper.claimable(bob.address)).to.be.equal(0); - - await tokenWrapper.claim(alice.address); - const vestings9 = await tokenWrapper.getUserVestings(alice.address); - expect(vestings9[1]).to.be.equal(1); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.03')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.03')); - expect(await angle.balanceOf(bob.address)).to.be.equal(parseEther('0.92')); - expect(await angle.balanceOf(alice.address)).to.be.equal(parseEther('999.05')); - - await tokenWrapper.claim(alice.address); - await tokenWrapper.claim(bob.address); - const vestings10 = await tokenWrapper.getUserVestings(alice.address); - const vestings11 = await tokenWrapper.getUserVestings(bob.address); - expect(vestings10[1]).to.be.equal(1); - expect(vestings11[1]).to.be.equal(4); - expect(await tokenWrapper.balanceOf(distributor)).to.be.equal(parseEther('0.03')); - expect(await angle.balanceOf(tokenWrapper.address)).to.be.equal(parseEther('0.03')); - expect(await angle.balanceOf(bob.address)).to.be.equal(parseEther('0.92')); - expect(await angle.balanceOf(alice.address)).to.be.equal(parseEther('999.05')); - }); - }); -}); -*/ \ No newline at end of file diff --git a/test/unit/DistributionCreator.t.sol b/test/unit/DistributionCreator.t.sol index 8c5c3804..7d7121e1 100644 --- a/test/unit/DistributionCreator.t.sol +++ b/test/unit/DistributionCreator.t.sol @@ -1371,27 +1371,6 @@ contract Test_DistributionCreator_setFees is DistributionCreatorTest { } } -contract Test_DistributionCreator_setNewDistributor is DistributionCreatorTest { - function test_RevertWhen_NotGovernor() public { - vm.expectRevert(Errors.NotGovernor.selector); - vm.prank(alice); - creator.setNewDistributor(address(bob)); - } - - function test_RevertWhen_InvalidParam() public { - vm.expectRevert(Errors.InvalidParam.selector); - vm.prank(governor); - creator.setNewDistributor(address(0)); - } - - function test_Success() public { - vm.prank(governor); - creator.setNewDistributor(address(bob)); - - assertEq(address(creator.distributor()), address(bob)); - } -} - contract Test_DistributionCreator_setUserFeeRebate is DistributionCreatorTest { function test_RevertWhen_NotGovernorOrGuardian() public { vm.expectRevert(Errors.NotGovernorOrGuardian.selector);