├── .env.example ├── .gas-snapshot-init ├── .gitignore ├── .vscode └── settings.json ├── 4naly3er-report.md ├── README-sponsor.md ├── README.md ├── contracts ├── accountingManager │ ├── AccountingManager.sol │ ├── NoyaFeeReceiver.sol │ └── Registry.sol ├── connectors │ ├── AaveConnector.sol │ ├── AerodromeConnector.sol │ ├── BalancerConnector.sol │ ├── BalancerFlashLoan.sol │ ├── CamelotConnector.sol │ ├── CompoundConnector.sol │ ├── CurveConnector.sol │ ├── Dolomite.sol │ ├── FraxConnector.sol │ ├── GearBoxV3.sol │ ├── LidoConnector.sol │ ├── MaverickConnector.sol │ ├── MorphoBlueConnector.sol │ ├── PancakeswapConnector.sol │ ├── PendleConnector.sol │ ├── PrismaConnector.sol │ ├── SNXConnector.sol │ ├── SiloConnector.sol │ ├── StargateConnector.sol │ └── UNIv3Connector.sol ├── external │ ├── interfaces │ │ ├── Aave │ │ │ └── IPool.sol │ │ ├── Aerodrome │ │ │ ├── IGauge.sol │ │ │ ├── IPool.sol │ │ │ ├── IRouter.sol │ │ │ └── IVoter.sol │ │ ├── Balancer │ │ │ ├── IBalancerPool.sol │ │ │ ├── IBalancerVault.sol │ │ │ └── IFlashLoanRecipient.sol │ │ ├── Camelot │ │ │ ├── ICamelotFactory.sol │ │ │ ├── ICamelotPair.sol │ │ │ └── ICamelotRouter.sol │ │ ├── Compound │ │ │ └── ICompound.sol │ │ ├── Convex │ │ │ ├── IBooster.sol │ │ │ └── IConvexBasicRewards.sol │ │ ├── Curve │ │ │ ├── ICurveSwap.sol │ │ │ └── IRewardsGauge.sol │ │ ├── Dolomite │ │ │ ├── AccountBalanceHelper.sol │ │ │ ├── IBorrowPositionProxyV1.sol │ │ │ ├── IDepositWithdrawalProxy.sol │ │ │ ├── IDolomiteAMMPair.sol │ │ │ ├── IDolomiteAmmFactory.sol │ │ │ └── IDolomiteMargin.sol │ │ ├── Frax │ │ │ └── IFraxPair.sol │ │ ├── Gearbox │ │ │ ├── ICreditConfiguratorV3.sol │ │ │ ├── ICreditFacadeV3.sol │ │ │ ├── ICreditFacadeV3Multicall.sol │ │ │ └── ICreditManagerV3.sol │ │ ├── Lido │ │ │ ├── ILido.sol │ │ │ ├── ILidoWithdrawal.sol │ │ │ └── IWETH.sol │ │ ├── Maverick │ │ │ ├── IMaverickPool.sol │ │ │ ├── IMaverickPosition.sol │ │ │ ├── IMaverickReward.sol │ │ │ ├── IMaverickRouter.sol │ │ │ ├── IPositionInspector.sol │ │ │ └── IveMAV.sol │ │ ├── Morpho │ │ │ ├── IIrm.sol │ │ │ ├── IMorpho.sol │ │ │ └── IOracle.sol │ │ ├── MorphoBlue │ │ │ ├── IIrm.sol │ │ │ ├── IMorpho.sol │ │ │ └── IOracle.sol │ │ ├── Pancakeswap │ │ │ └── IMasterChefV3.sol │ │ ├── Pendle │ │ │ ├── IPActionSwapPTV3.sol │ │ │ ├── IPActionSwapYTV3.sol │ │ │ ├── IPAllActionTypeV3.sol │ │ │ ├── IPLimitRouter.sol │ │ │ ├── IPMarket.sol │ │ │ ├── IPPrincipalToken.sol │ │ │ ├── IPPtOracle.sol │ │ │ ├── IPStandardizedYield.sol │ │ │ ├── IPYieldToken.sol │ │ │ ├── IPendleMarketDepositHelper.sol │ │ │ ├── IPendleRouter.sol │ │ │ └── IPendleStaticRouter.sol │ │ ├── Prisma │ │ │ ├── IBorrowerOperations.sol │ │ │ ├── IDepositToken.sol │ │ │ ├── IStakeNTroveZap.sol │ │ │ └── TroveManager │ │ │ │ └── ITroveManager.sol │ │ ├── SNXV3 │ │ │ └── IV3CoreProxy.sol │ │ ├── Silo │ │ │ ├── IBaseSilo.sol │ │ │ ├── IInterestRateModel.sol │ │ │ ├── INotificationReceiver.sol │ │ │ ├── IPriceProvider.sol │ │ │ ├── IPriceProvidersRepository.sol │ │ │ ├── IShareToken.sol │ │ │ ├── ISilo.sol │ │ │ └── ISiloRepository.sol │ │ ├── Stargate │ │ │ ├── IStargateLPStaking.sol │ │ │ └── IStargateRouter.sol │ │ └── UNIv3 │ │ │ ├── INonfungiblePositionManager.sol │ │ │ ├── IUniswapV3Factory.sol │ │ │ └── IUniswapV3Pool.sol │ └── libraries │ │ ├── GearBox │ │ ├── BalancesLogic.sol │ │ └── BitMask.sol │ │ ├── Morpho │ │ ├── ErrorsLib.sol │ │ ├── MarketParamsLib.sol │ │ ├── MathLib.sol │ │ ├── SharesMathLib.sol │ │ ├── UtilsLib.sol │ │ └── periphery │ │ │ ├── MorphoLib.sol │ │ │ └── MorphoStorageLib.sol │ │ ├── Pendle │ │ ├── Errors.sol │ │ ├── IPMarket.sol │ │ ├── IPPrincipalToken.sol │ │ ├── IPPtOracle.sol │ │ ├── IPStandardizedYield.sol │ │ ├── IPYieldToken.sol │ │ ├── IPendleMarketDepositHelper.sol │ │ ├── LogExpMath.sol │ │ ├── MarketApproxPtInLib.sol │ │ ├── MarketMathCore.sol │ │ ├── Math.sol │ │ ├── MiniHelpers.sol │ │ ├── PYIndex.sol │ │ ├── PendleLpOracleLib.sol │ │ ├── PendlePtOracleLib.sol │ │ └── SYUtils.sol │ │ ├── Silo │ │ ├── EasyMathV2.sol │ │ └── SolvencyV2.sol │ │ ├── dolomite │ │ ├── Decimal.sol │ │ └── Types.sol │ │ └── uniswap │ │ ├── FixedPoint96.sol │ │ ├── FullMath.sol │ │ ├── LiquidityAmounts.sol │ │ ├── OracleLibrary.sol │ │ ├── PoolAddress.sol │ │ └── TickMath.sol ├── governance │ ├── Keepers.sol │ ├── NoyaGovernanceBase.sol │ ├── TimeLock.sol │ └── Watchers.sol ├── helpers │ ├── BaseConnector.sol │ ├── ConnectorMock2.sol │ ├── LZHelpers │ │ ├── LZHelperReceiver.sol │ │ └── LZHelperSender.sol │ ├── OmniChainHandler │ │ ├── OmnichainLogic.sol │ │ ├── OmnichainManagerBaseChain.sol │ │ └── OmnichainManagerNormalChain.sol │ ├── SwapHandler │ │ ├── GenericSwapAndBridgeHandler.sol │ │ └── Implementaions │ │ │ └── LifiImplementation.sol │ ├── TVLHelper.sol │ └── valueOracle │ │ ├── NoyaValueOracle.sol │ │ └── oracles │ │ ├── ChainlinkOracleConnector.sol │ │ ├── UniswapValueOracle.sol │ │ └── WETH_Oracle.sol └── interface │ ├── Accounting │ └── IAccountingManager.sol │ ├── IConnector.sol │ ├── IPositionRegistry.sol │ ├── ITokenTransferCallBack.sol │ ├── SwapHandler │ ├── ILiFi.sol │ ├── ISwapAndBridgeHandler.sol │ └── ISwapAndBridgeImplementation.sol │ └── valueOracle │ ├── AggregatorV3Interface.sol │ └── INoyaValueOracle.sol ├── coverage.sh ├── deployments ├── constants.json ├── sharedContracts.json ├── vaultAddresses_1.json ├── vaultAddresses_110.json ├── vaultAddresses_111.json ├── vaultAddresses_112.json ├── vaultAddresses_113.json ├── vaultAddresses_2.json ├── vaultAddresses_4.json └── vaultAddresses_5656.json ├── deploymentsOld ├── vaultAddresses_110.json ├── vaultAddresses_111.json ├── vaultAddresses_112.json ├── vaultAddresses_113.json └── vaultAddresses_5656.json ├── discord-export ├── Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html ├── Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files │ ├── %25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%2-D4A5E.mp4 │ ├── 0-EB806.png │ ├── 01865d1bed0a1da3a253f05b3e79cb07-CB286.png │ ├── 01fe66bc1531b9b6fdd9f09f90bcbd2e-502DF.png │ ├── 045bf49f3bb3ecd3ddfc009a6af823ba-EF9F6.png │ ├── 055fefd2d97125fd867ff4515d4459b2-AD3C4.png │ ├── 07158b76e34c74f71b4876b66b9dff50-D54F0.png │ ├── 0ab6fddedfdca4dee0b54ab41ab4faad-3EFDA.png │ ├── 0ae311857ca5610dd4e8476c7100f7bd-A60D6.png │ ├── 0b2f4ec055332d2b6bf28393aa335eaa-CFE53.png │ ├── 0b8eb95ae05f7d8b62136d857c324c66-088A8.png │ ├── 0cf7719f20f0aaed168c3f31a3f0bceb-8014C.png │ ├── 1%2AodBhlS2pFC5q6VKd8kMjZg-431C4.png │ ├── 1-B2132.png │ ├── 1058742975481511948-4D6A3.png │ ├── 1080667809002037320-8957D.png │ ├── 1083068770823721071-EE4F6.png │ ├── 1162a888c78000773591a5db6de8aa9f-DCF7E.png │ ├── 1232421541312987217-F7775.png │ ├── 1233171131012223026-67C35.png │ ├── 1233479995633172584-BBE31.png │ ├── 1237582033039917116-9F568.png │ ├── 1237582204905979995-AD6AE.png │ ├── 1237626707968790528-1E15E.png │ ├── 1237627076333539328-5DC87.png │ ├── 1251418676196802632-DAF21.gif │ ├── 15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png │ ├── 16b131a82877787357b60c3f03daef86-872DC.png │ ├── 1aea383fe7da3deeefb7a87fc44e7bca-D0D1A.png │ ├── 1c662fff515f25094c31e4ed792a836a-60DA9.png │ ├── 1f1e7-1f1ec-AB79C.svg │ ├── 1f1ea-6381F.svg │ ├── 1f1f3-6F811.svg │ ├── 1f1fc-98795.svg │ ├── 1f2874ce34e1d8171e0dc5d95c212a40-1FE2A.png │ ├── 1f31f-1B968.svg │ ├── 1f338-EB203.svg │ ├── 1f389-5C738.svg │ ├── 1f3c1-445DC.svg │ ├── 1f3c6-621A1.svg │ ├── 1f3fb-E58B7.svg │ ├── 1f427-DA043.svg │ ├── 1f43a-EB486.svg │ ├── 1f440-6C64D.svg │ ├── 1f446-1f3fb-38017.svg │ ├── 1f446-9CC34.svg │ ├── 1f44b-8A059.svg │ ├── 1f44c-59547.svg │ ├── 1f44d-27259.svg │ ├── 1f44e-EE417.svg │ ├── 1f44f-3D381.svg │ ├── 1f451-B565E.svg │ ├── 1f480-94524.svg │ ├── 1f490-8C4BF.svg │ ├── 1f493-D6A69.svg │ ├── 1f49c-71A75.svg │ ├── 1f4af-4CFF5.svg │ ├── 1f4b0-53FFF.svg │ ├── 1f4b8-E3468.svg │ ├── 1f4c6-44E30.svg │ ├── 1f4dc-AC641.svg │ ├── 1f50d-195C0.svg │ ├── 1f51d-7179C.svg │ ├── 1f525-8FE4F.svg │ ├── 1f52e-D787F.svg │ ├── 1f575-fe0f-200d-2642-fe0f-6DD50.svg │ ├── 1f596-2F736.svg │ ├── 1f600-F7528.svg │ ├── 1f601-4E9BD.svg │ ├── 1f602-168C5.svg │ ├── 1f603-5E531.svg │ ├── 1f604-BF863.svg │ ├── 1f605-42B43.svg │ ├── 1f606-BE94E.svg │ ├── 1f607-0FB5B.svg │ ├── 1f609-9EC67.svg │ ├── 1f60a-3283D.svg │ ├── 1f60e-FF6EB.svg │ ├── 1f60f-2BDEE.svg │ ├── 1f625-F009A.svg │ ├── 1f62d-02603.svg │ ├── 1f62e-FE396.svg │ ├── 1f631-75E8D.svg │ ├── 1f635-200d-1f4ab-AC747.svg │ ├── 1f642-83E8A.svg │ ├── 1f645-200d-2640-fe0f-79F12.svg │ ├── 1f648-B83C5.svg │ ├── 1f64c-7C820.svg │ ├── 1f64f-1f3fc-34E32.svg │ ├── 1f64f-22B8D.svg │ ├── 1f680-A35CE.svg │ ├── 1f6a8-A8AB3.svg │ ├── 1f911-F346C.svg │ ├── 1f914-15707.svg │ ├── 1f916-AD810.svg │ ├── 1f91a-46549.svg │ ├── 1f91d-5A0F2.svg │ ├── 1f923-5854E.svg │ ├── 1f928-6E613.svg │ ├── 1f929-12865.svg │ ├── 1f937-19884.svg │ ├── 1f947-62E91.svg │ ├── 1f971-CD83B.svg │ ├── 1f972-F415D.svg │ ├── 1f973-88B39.svg │ ├── 1f976-D536D.svg │ ├── 1f97a-1F57B.svg │ ├── 1f9d1-5BC80.svg │ ├── 1f9e1-18A30.svg │ ├── 1fa77-99DEC.svg │ ├── 1fac2-960B6.svg │ ├── 1fae0-D00A5.svg │ ├── 1fae1-B19DE.svg │ ├── 1fae3-64122.svg │ ├── 1faf5-BC4E5.svg │ ├── 1faf6-009D0.svg │ ├── 2-ADBB4.png │ ├── 258efb44a5e3f3ccd0db6c4b11462ff2-08900.png │ ├── 261d-23B11.svg │ ├── 263a-99012.svg │ ├── 2696-15F4A.svg │ ├── 2705-0589F.svg │ ├── 274c-EA1F1.svg │ ├── 2754-09670.svg │ ├── 2764-A3D25.svg │ ├── 276b6c6135d0ffb29c95a4366a16bf54-4CBDC.png │ ├── 2795-3358E.svg │ ├── 27f89631ca4378fe9e5dc30c8f2443ae-83E60.png │ ├── 2a9faff195fe333526cfe6ae6fce1420-49B98.png │ ├── 2aabb21256512926dd01109b34d8b6ab-A6648.png │ ├── 2bfbca239a7aeb57ce223c2825599348-87797.png │ ├── 2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png │ ├── 2c272237ce9e087ac5cc503d4897a9a9-42B4B.png │ ├── 2d02fd39d6997dc5e1e0ff7e72fa22d6-B14AB.png │ ├── 2d5106f414d37bc4f109bc42dad783e7-F4626.png │ ├── 2e3955592c986f2d1caaf107dbe3b14f-9B819.png │ ├── 3-FB033.png │ ├── 3894a1022cd38c5065dbde8e03cf8a44-5344B.png │ ├── 38f03be5a1f4fc5a8f06307bc43bae6c-8AA93.png │ ├── 3a97e0ab1c82948fe865244ff75d0927-83C8B.png │ ├── 3fcb70ed63af9d6c70cb3d649756c18e-909F3.png │ ├── 4-4551A.png │ ├── 41c795df43b437a47df528f162af27d8-C4CDB.png │ ├── 453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png │ ├── 4634554b26c5ac710fcace1ce468e6b4-DCDA1.png │ ├── 4942acf1679d44f03339e983726e8e13-E0260.png │ ├── 49b72542bc3aaa0feb2839c049c096e1-67994.png │ ├── 49cbd9256c8518befc46bf8651ea2d3c-B4D40.png │ ├── 4de8e7cb6dfbbe8795697f1df8d66439-044AF.png │ ├── 4eaf99d01e4b5042454b4a6a8809687a-2B18B.png │ ├── 4fe23cba-7489-45af-b1f5-da6aec526cb7-8B8AA │ ├── 50dd7f528e6efa2618511364dd0ddce0-1D481.png │ ├── 568d22b97293cdd2d9b7006198d6adbc-F0132.png │ ├── 5e3fb61df91ed29c573265a690af4600-E824E.png │ ├── 60855a399e9f25515cfcf4890e38acaa-E8745.png │ ├── 625-56567.png │ ├── 65e786c26c24f3ad91e011e953037ae5-6A1EB.png │ ├── 66c54ad6b6c2224e66ef8148ab5b7bcc-9BDF6.png │ ├── 67594ee4b4d1fc03bca468327a0d145b-BD76A.png │ ├── 6c5996770c985bcd6e5b68131ff2ba04-9B31E.png │ ├── 6c5996770c985bcd6e5b68131ff2ba04-A5CF4.png │ ├── 6e22e8b65ff7478b41cd31dd23221860-0545A.png │ ├── 6eaf3da781b7b271cac0fced99d9307e-F4569.png │ ├── 750d791c21ffd3863332eea023124fa5-05646.png │ ├── 75a0b4121342383258ea9cc8ff2e782b-D8B30.png │ ├── 78025b51fbd5016bf80d568e3b199528-E03F8.png │ ├── 796141648471916574-9CF8C.json │ ├── 7c800e66875e3082f457492b1852cc15-5EC64.png │ ├── 8043f1de89cc1387981f4990ad574c08-78DE7.png │ ├── 80e24bbc2fada669f9f8a03aef044a7b-73586.png │ ├── 816086882823831613-3C537.json │ ├── 816cfc933746a8ffd61a8a93193028c5-41002.png │ ├── 81714ec75636b04d7057352118a34e06-7565A.png │ ├── 821fca1ff37a6d81c68b7c2f8c6c5a73-725D1.png │ ├── 851893157188599838-C23B5.png │ ├── 851893827027075142-F23DF.png │ ├── 851893827089727568-5FD38.png │ ├── 851893827315826708-F59C0.png │ ├── 851893827409412118-10EE9.png │ ├── 860bc8415fcb344bebcf89a301158ffd-36A89.png │ ├── 86f4180c3829539aab0c6210474061a7-4349C.png │ ├── 8beb125bbaa4085dbee1d02a58895784-398A3.png │ ├── 8bfdc9008b7d57ae09dffd4e6f231f9a-D4B5B.png │ ├── 8f8910a2253655189c89796822afedd6-144A6.png │ ├── 8f94fb09514d4f3663f07b1335d47a8f-4DC63.png │ ├── 910676187288846397-518CD.png │ ├── 9220a9ff683f654eaf5151b8663e8b53-22007.png │ ├── 930871c4671919ec697c9144a1911535-814BF.png │ ├── 9547c61f37c121beb37e61cee0c642be-BB96A.png │ ├── 970d2e2f00cd7ef2134a1a3f21326349-404EA.png │ ├── 977133670429261884-CA8EA.png │ ├── 9aadff7033831607a3607223f19dd164-70E8E.png │ ├── 9bf2181404e658cab4039c07df56213f-E3E89.png │ ├── GPypkrOXIAIqIgC-F0EE5.jpg%3Alarge │ ├── IMG_8562-FCE3C.gif │ ├── Screenshot_1-770ED.png │ ├── Screenshot_2024-05-03_at_12.12.15-6A993.png │ ├── a286c50d9888a0a1b503db1bd22f89b6-FE06F.png │ ├── a650a74d099d6cc922aab1b28354d431-C32C9.png │ ├── a6d43650f9808cf64ab95248120f311a-683CC.png │ ├── a6defa6808e3fe166028d66a76778624-DFAA0.png │ ├── aKVs61ADx7L9tFqjrYK92hadeU-06348.png │ ├── a_9cb46a6a13f6e5f999c3e5260f076c6d-13206.gif │ ├── af81908f19115fe1f1541657f1152655-B4460.png │ ├── apple-touch-icon-192x192-E344C.png │ ├── b6b0c8b38f933b4cb7d52e484a250c3b-A5BA4.png │ ├── b6fa689e3e7b914e3e75638cb8f86a28-422B9.png │ ├── bea894f852e0353cdefbfc0184bb2e11-36301.png │ ├── bigay-ng-barya-kimpoy-feliciano-E104D.mp4 │ ├── boring-bored-9E00F.mp4 │ ├── c0778c5fbf8f160dff42cc01b00b28e2-B0EF4.png │ ├── c0f32c0424355c03a0a9c396a7475275-D6BF8.png │ ├── c5c9cae9cd193f1eb0c18644d30be95c-B5DEB.png │ ├── c7b9cffd574f7b6804efc58a656a3707-D58C3.png │ ├── c934998a134e0d4d1dd6a3fb7b9f5576-BF60F.png │ ├── c9b8e94d579281b0b9b8214fd4b26ad3-FC564.png │ ├── c9cb30134c634c9e02d0c64df4922803-98E33.png │ ├── cars-movie-mater-BF4E6.mp4 │ ├── ce118028c35247ad4851fd2c0455067a-D29FB.png │ ├── ce33938a6121cd196500c7b573fba65a-15E3D.png │ ├── d482d56e4533980c4a4108a97afecfcb-31323.png │ ├── d4b3590ea4349f36f3b9b71c4d408d60-B73C4.png │ ├── daffy-what-3A2FB.mp4 │ ├── dead-my-honest-reaction-DB660.mp4 │ ├── e1404dacd584a9dd92992d44bdd22b4a-10173.png │ ├── e31111c0206bbcd02dbc72a8c2a32a08-80083.png │ ├── e6c36d4c4c46f1395e4858604ed24570-A3ECE.png │ ├── e9472a11f41d425badda92e53fc91864-F560D.png │ ├── ed2c393ef4af38f37f82a8f91043cd04-D5651.png │ ├── ef353ac557c47e95ecd46e0afac40642-CEF40.png │ ├── f2454ae3288bfc8dfb44c9083ebd5e45-FF3C1.png │ ├── f4422c70568695907d5aa7f8632b4d51-4FBE2.png │ ├── f6322ae2e8b75c3cbb6e7602271c69aa-BFE51.png │ ├── fa08bab3f0977d28fd8f7dbda77ad22a-4BFA7.png │ ├── fa83a21e53b67793e5252e2f7d940789-B0928.png │ ├── ggsans-italic-400-E988B.woff2 │ ├── ggsans-italic-500-0777F.woff2 │ ├── ggsans-italic-600-CB411.woff2 │ ├── ggsans-italic-700-891AC.woff2 │ ├── ggsans-italic-800-D36B0.woff2 │ ├── ggsans-normal-400-1456D.woff2 │ ├── ggsans-normal-500-89CE5.woff2 │ ├── ggsans-normal-600-C1EA8.woff2 │ ├── ggsans-normal-700-1949A.woff2 │ ├── ggsans-normal-800-58487.woff2 │ ├── highlight.min-D8D27.js │ ├── how-long-will-that-take-ella-payne-6C45F.mp4 │ ├── i-dont-care-spend-the-money-E4DEC.mp4 │ ├── i-identify-as-poor-chris-rock-ED8A7.mp4 │ ├── i-need-that-money-brother-x-207C0.mp4 │ ├── image-1A983.png │ ├── image-D4C56.png │ ├── kyriostsahs-lonely-C2F17.mp4 │ ├── loading-windows98-60F93.mp4 │ ├── lottie.min-99657.js │ ├── mord-mit-aussicht-murder-with-a-view-DDBFB.mp4 │ ├── robert-downey-jr-facepalm-0961C.mp4 │ ├── sad-sea-A104F.mp4 │ ├── solarized-dark.min-BA98F.css │ ├── soon-cat-BE59A.mp4 │ ├── spaces%252Ff8wrmfL9sMgx2g3g358V%252Fsocial-0E155.png │ ├── spaces%252FrGMrQr7vOtFr68cv039Y%252Fsocial-37A5E.png │ ├── stone-cold-409B7.mp4 │ ├── super-dead-superman-84902.mp4 │ ├── tenor-68046.mp4 │ ├── viyeongg-bored-monkey-77EB9.mp4 │ ├── waiting-waiting-patiently-C4D47.mp4 │ ├── what-monkey-04F0A.mp4 │ ├── when-asking-DA262.mp4 │ ├── when-you-attending-to-your-crush-wedding-s-CB2C3.mp4 │ ├── why-really-CA826.mp4 │ └── you-have-58D99.mp4 ├── Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt └── Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files │ ├── %25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%2-52C9A.png │ ├── 1%2AodBhlS2pFC5q6VKd8kMjZg-431C4.png │ ├── 4fe23cba-7489-45af-b1f5-da6aec526cb7-8B8AA │ ├── 625-56567.png │ ├── 796141648471916574-9CF8C.json │ ├── 816086882823831613-3C537.json │ ├── GPypkrOXIAIqIgC-F0EE5.jpg%3Alarge │ ├── IMG_8562-FCE3C.gif │ ├── Screenshot_1-770ED.png │ ├── Screenshot_2024-05-03_at_12.12.15-6A993.png │ ├── aKVs61ADx7L9tFqjrYK92hadeU-06348.png │ ├── bigay-ng-barya-kimpoy-feliciano-E3135.png │ ├── boring-bored-F05C5.png │ ├── cars-movie-mater-802CE.png │ ├── daffy-what-6DB31.png │ ├── dead-my-honest-reaction-521AA.png │ ├── how-long-will-that-take-ella-payne-89FF4.png │ ├── i-dont-care-spend-the-money-2DA10.png │ ├── i-identify-as-poor-chris-rock-72EE7.png │ ├── i-need-that-money-brother-x-0816B.png │ ├── image-1A983.png │ ├── image-D4C56.png │ ├── kyriostsahs-lonely-80C0F.png │ ├── loading-windows98-68E98.png │ ├── mord-mit-aussicht-murder-with-a-view-BC632.png │ ├── robert-downey-jr-facepalm-D0B73.png │ ├── sad-sea-D3E35.png │ ├── soon-cat-10DB2.png │ ├── spaces%252Ff8wrmfL9sMgx2g3g358V%252Fsocial-0E155.png │ ├── spaces%252FrGMrQr7vOtFr68cv039Y%252Fsocial-37A5E.png │ ├── stone-cold-1A90B.png │ ├── super-dead-superman-87E4C.png │ ├── tenor-E1D22.png │ ├── viyeongg-bored-monkey-72D34.png │ ├── waiting-waiting-patiently-C8F8A.png │ ├── what-monkey-59096.png │ ├── when-asking-AFF67.png │ ├── when-you-attending-to-your-crush-wedding-s-D8F74.png │ ├── why-really-D3751.png │ └── you-have-16653.png ├── docs └── index.md ├── foundry.toml ├── hardhat.config.ts ├── lib └── forge-std │ ├── .github │ └── workflows │ │ ├── ci.yml │ │ └── sync.yml │ ├── .gitignore │ ├── .gitmodules │ ├── LICENSE-APACHE │ ├── LICENSE-MIT │ ├── README.md │ ├── foundry.toml │ ├── lib │ └── ds-test │ │ ├── .github │ │ └── workflows │ │ │ └── build.yml │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── default.nix │ │ ├── demo │ │ └── demo.sol │ │ ├── package.json │ │ └── src │ │ ├── test.sol │ │ └── test.t.sol │ ├── package.json │ ├── src │ ├── Base.sol │ ├── Script.sol │ ├── StdAssertions.sol │ ├── StdChains.sol │ ├── StdCheats.sol │ ├── StdError.sol │ ├── StdInvariant.sol │ ├── StdJson.sol │ ├── StdMath.sol │ ├── StdStorage.sol │ ├── StdStyle.sol │ ├── StdUtils.sol │ ├── Test.sol │ ├── Vm.sol │ ├── console.sol │ ├── console2.sol │ ├── interfaces │ │ ├── IERC1155.sol │ │ ├── IERC165.sol │ │ ├── IERC20.sol │ │ ├── IERC4626.sol │ │ ├── IERC721.sol │ │ └── IMulticall3.sol │ └── safeconsole.sol │ └── test │ ├── StdAssertions.t.sol │ ├── StdChains.t.sol │ ├── StdCheats.t.sol │ ├── StdError.t.sol │ ├── StdMath.t.sol │ ├── StdStorage.t.sol │ ├── StdStyle.t.sol │ ├── StdUtils.t.sol │ ├── Vm.t.sol │ ├── compilation │ ├── CompilationScript.sol │ ├── CompilationScriptBase.sol │ ├── CompilationTest.sol │ └── CompilationTestBase.sol │ └── fixtures │ └── broadcast.log.json ├── out_of_scope.txt ├── package.json ├── remappings.txt ├── scope.txt ├── screenshot_1.png ├── scripts ├── actions │ ├── addVaultDetailsToJson.ts │ ├── calculateDeposit.ts │ ├── deposit.ts │ ├── getTVLOfVault.ts │ ├── rescue.ts │ ├── updatePositions.ts │ └── updateRegistry.ts ├── deployments │ ├── dAaveConnector.ts │ ├── dAerodromeConnector.ts │ ├── dBalancerConnector.ts │ ├── dCompoundConnector.ts │ ├── dCurveConnector.ts │ ├── dFraxConnector.ts │ ├── dGearboxv3.ts │ ├── dLido.ts │ ├── dMaverick.ts │ ├── dMorphoBlue.ts │ ├── dPancackeSwap.ts │ ├── dPendle.ts │ ├── dPrisma.ts │ ├── dSilo.ts │ ├── dStargate.ts │ ├── deployAccountingManager.ts │ ├── deployMockConnector.ts │ ├── deploySharedContracts.ts │ └── deployUniswapV3Connector.ts └── utils │ └── updateAddresses.ts ├── slither.config.json ├── slither.txt ├── testFoundry ├── AaveConnector.t.sol ├── Aerodrome.t.sol ├── BalancerConnector.t.sol ├── BaseConnector.t.sol ├── CompoundConnector.t.sol ├── CurveConnector.t.sol ├── Dolomite.t.sol ├── FraxConnector.t.sol ├── GearBoxV3.t.sol ├── LidoConnector.t.sol ├── MaverickConnector.t.sol ├── MorphoBlue.t.sol ├── PancakeswapConnector.t.sol ├── PendleConnector.t.sol ├── PrismaConnector.t.sol ├── SNXConnector.t.sol ├── SiloConnector.t.sol ├── SiloFlashLoan.t.sol ├── StargateConnector.t.sol ├── TestAccounting.sol ├── TestFlashLoan.sol ├── UNIv3Connector.t.sol ├── testAccountingBranches.sol ├── testLifi.sol ├── testOmnichain.t.sol ├── testOracle.sol ├── testRegistry.sol ├── testSwapETH.sol ├── testSwapHandler.sol └── utils │ ├── mocks │ ├── ConnectorMock.sol │ ├── ConnectorMock2.sol │ ├── EmergancyMock.sol │ ├── IDiamondCut.sol │ ├── IrmMock.sol │ ├── LZEndpointMock.sol │ ├── MockDataFeed.sol │ ├── MockDataFeedForMorphoBlue.sol │ ├── bridgeImplementationMock.sol │ └── lifiDiamondMock.sol │ ├── resources │ ├── ArbitrumAddresses.sol │ ├── BaseAddresses.sol │ ├── BinanceSmartChainAddresses.sol │ ├── MainnetAddresses.sol │ ├── OptimismAddresses.sol │ └── PolygonAddresses.sol │ └── testStarter.sol ├── tsconfig.json ├── utils └── lifi │ ├── LiFi.js │ ├── package-lock.json │ └── package.json └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | SEPOLIA_RPC= 2 | BASE_RPC= 3 | OPTIMISM_RPC= 4 | POLYGON_RPC= 5 | ARBITRUM_RPC= 6 | SEPOLIA_OP_RPC= 7 | OWNER_PRIVATE_KEY= -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | coverage 4 | coverage.json 5 | typechain 6 | typechain-types 7 | lcov.info 8 | forge-pruned-lcov.info 9 | 10 | # Hardhat files 11 | cache 12 | artifacts 13 | 14 | artifactsFoundry 15 | .DS_Store 16 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "lcov.path": "coverage/lcov.info", 3 | "lcov.branchCoverage": "full" 4 | } 5 | -------------------------------------------------------------------------------- /contracts/accountingManager/NoyaFeeReceiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | import { AccountingManager } from "./AccountingManager.sol"; 5 | import "@openzeppelin/contracts-5.0/access/Ownable.sol"; 6 | 7 | contract NoyaFeeReceiver is Ownable { 8 | address public receiver; 9 | address public accountingManager; 10 | address public baseToken; 11 | 12 | event ManagementFeeReceived(address indexed token, uint256 amount); 13 | 14 | constructor(address _accountingManager, address _baseToken, address _receiver) Ownable(msg.sender) { 15 | require(_accountingManager != address(0)); 16 | require(_baseToken != address(0)); 17 | require(_receiver != address(0)); 18 | accountingManager = _accountingManager; 19 | baseToken = _baseToken; 20 | receiver = _receiver; 21 | } 22 | 23 | function withdrawShares(uint256 amount) external onlyOwner { 24 | AccountingManager(accountingManager).withdraw(amount, receiver); 25 | } 26 | 27 | function burnShares(uint256 amount) external onlyOwner { 28 | AccountingManager(accountingManager).burnShares(amount); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Balancer/IBalancerPool.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | interface IBalancerPool { 5 | function getPoolId() external view returns (bytes32); 6 | 7 | function getNormalizedWeights() external returns (uint256[] memory); 8 | 9 | function totalSupply() external returns (uint256); 10 | } 11 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Camelot/ICamelotFactory.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.8.0; 2 | 3 | interface ICamelotFactory { 4 | event PairCreated(address indexed token0, address indexed token1, address pair, uint256); 5 | 6 | function owner() external view returns (address); 7 | function feePercentOwner() external view returns (address); 8 | function setStableOwner() external view returns (address); 9 | function feeTo() external view returns (address); 10 | 11 | function ownerFeeShare() external view returns (uint256); 12 | function referrersFeeShare(address) external view returns (uint256); 13 | 14 | function getPair(address tokenA, address tokenB) external view returns (address pair); 15 | function allPairs(uint256) external view returns (address pair); 16 | function allPairsLength() external view returns (uint256); 17 | 18 | function createPair(address tokenA, address tokenB) external returns (address pair); 19 | 20 | function setFeeTo(address) external; 21 | function feeInfo() external view returns (uint256 _ownerFeeShare, address _feeTo); 22 | } 23 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Camelot/ICamelotPair.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | 3 | pragma solidity >=0.8.20; 4 | 5 | interface ICamelotPair { 6 | function precisionMultiplier0() external pure returns (uint256); 7 | 8 | function precisionMultiplier1() external pure returns (uint256); 9 | 10 | function factory() external view returns (address); 11 | 12 | function token0() external view returns (address); 13 | 14 | function token1() external view returns (address); 15 | 16 | function getReserves() 17 | external 18 | view 19 | returns (uint112 reserve0, uint112 reserve1, uint16 token0feePercent, uint16 token1FeePercent); 20 | 21 | function getAmountOut(uint256 amountIn, address tokenIn) external view returns (uint256); 22 | 23 | function kLast() external view returns (uint256); 24 | 25 | function mint(address to) external returns (uint256 liquidity); 26 | 27 | function burn(address to) external returns (uint256 amount0, uint256 amount1); 28 | 29 | function stableSwap() external view returns (bool); 30 | } 31 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Convex/IConvexBasicRewards.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import "./IBooster.sol"; 5 | 6 | interface IConvexBasicRewards { 7 | struct EarnedData { 8 | address token; 9 | uint256 amount; 10 | } 11 | 12 | function stakeFor(address, uint256) external returns (bool); 13 | 14 | function balanceOf(address) external view returns (uint256); 15 | 16 | function earned(address) external view returns (uint256); 17 | 18 | function getReward(address _account, bool _claimExtras) external returns (bool); 19 | 20 | function withdrawAll(bool) external returns (bool); 21 | 22 | function withdraw(uint256, bool) external returns (bool); 23 | 24 | function withdrawAndUnwrap(uint256, bool) external returns (bool); 25 | 26 | function getReward() external returns (bool); 27 | 28 | function stake(uint256) external returns (bool); 29 | } 30 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Curve/IRewardsGauge.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | import "./ICurveSwap.sol"; 3 | 4 | pragma solidity >=0.6.0 <0.9.0; 5 | 6 | interface IRewardsGauge { 7 | function balanceOf(address account) external view returns (uint256); 8 | function claimable_reward(address _addr, address _token) external view returns (uint256); 9 | function claim_rewards(address _addr) external; 10 | function deposit(uint256 _value) external; 11 | function withdraw(uint256 _value) external; 12 | function reward_contract() external view returns (address); 13 | } 14 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Lido/ILido.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import { IERC20Permit } from "@openzeppelin/contracts-5.0/token/ERC20/extensions/IERC20Permit.sol"; 5 | import { IERC20 } from "@openzeppelin/contracts-5.0/interfaces/IERC20.sol"; 6 | 7 | interface ILido is IERC20Permit, IERC20 { 8 | function submit(address _refferal) external payable returns (uint256); 9 | } 10 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Lido/ILidoWithdrawal.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import { IERC721 } from "@openzeppelin/contracts-5.0/interfaces/IERC721.sol"; 5 | import "./ILido.sol"; 6 | import "./IWETH.sol"; 7 | 8 | interface ILidoWithdrawal is IERC721 { 9 | function requestWithdrawals(uint256[] calldata _amounts, address _owner) 10 | external 11 | returns (uint256[] memory requestIds); 12 | 13 | function claimWithdrawal(uint256 _requestId) external; 14 | } 15 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Lido/IWETH.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import { IERC20 } from "@openzeppelin/contracts-5.0/interfaces/IERC20.sol"; 5 | 6 | interface IWETH is IERC20 { 7 | function deposit() external payable; 8 | 9 | function withdraw(uint256 wad) external; 10 | } 11 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Maverick/IMaverickPool.sol: -------------------------------------------------------------------------------- 1 | //SPDX-License-Identifier: UNLICENSED 2 | pragma solidity 0.8.20; 3 | 4 | import "@openzeppelin/contracts-5.0/token/ERC20/IERC20.sol"; 5 | 6 | struct AddLiquidityParams { 7 | uint8 kind; 8 | int32 pos; 9 | bool isDelta; 10 | uint128 deltaA; 11 | uint128 deltaB; 12 | } 13 | 14 | struct RemoveLiquidityParams { 15 | uint128 binId; 16 | uint128 amount; 17 | } 18 | 19 | struct BinDelta { 20 | uint128 deltaA; 21 | uint128 deltaB; 22 | uint256 deltaLpBalance; 23 | uint128 binId; 24 | uint8 kind; 25 | int32 lowerTick; 26 | bool isActive; 27 | } 28 | 29 | interface IMaverickPool { 30 | function tokenA() external view returns (address); 31 | 32 | function tokenB() external view returns (address); 33 | } 34 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Maverick/IMaverickPosition.sol: -------------------------------------------------------------------------------- 1 | //SPDX-License-Identifier: UNLICENSED 2 | pragma solidity 0.8.20; 3 | 4 | interface IMaverickPosition { 5 | function approve(address to, uint256 tokenId) external; 6 | } 7 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Maverick/IMaverickReward.sol: -------------------------------------------------------------------------------- 1 | //SPDX-License-Identifier: UNLICENSED 2 | pragma solidity 0.8.20; 3 | 4 | import "@openzeppelin/contracts-5.0/token/ERC20/IERC20.sol"; 5 | 6 | interface IMaverickReward { 7 | struct EarnedInfo { 8 | // account 9 | address account; 10 | // earned 11 | uint256 earned; 12 | // reward token 13 | IERC20 rewardToken; 14 | } 15 | 16 | function earned(address account) external view returns (EarnedInfo[] memory earnedInfo); 17 | 18 | function tokenIndex(address tokenAddress) external view returns (uint8); 19 | 20 | function getReward(address recipient, uint8 rewardTokenIndex) external returns (uint256); 21 | } 22 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Maverick/IMaverickRouter.sol: -------------------------------------------------------------------------------- 1 | //SPDX-License-Identifier: UNLICENSED 2 | pragma solidity 0.8.20; 3 | 4 | import "./IMaverickPool.sol"; 5 | import "./IMaverickPosition.sol"; 6 | import "./IMaverickReward.sol"; 7 | import "./IPositionInspector.sol"; 8 | import "./IveMAV.sol"; 9 | 10 | interface IMaverickRouter { 11 | function position() external view returns (IMaverickPosition); 12 | 13 | function removeLiquidity( 14 | IMaverickPool, 15 | address, 16 | uint256, 17 | RemoveLiquidityParams[] calldata, 18 | uint256, 19 | uint256, 20 | uint256 21 | ) external returns (uint256 tokenAAmount, uint256 tokenBAmount, BinDelta[] memory binDeltas); 22 | 23 | function addLiquidityToPool(IMaverickPool, uint256, AddLiquidityParams[] calldata, uint256, uint256, uint256) 24 | external 25 | payable 26 | returns (uint256, uint256, uint256, BinDelta[] memory); 27 | } 28 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Maverick/IveMAV.sol: -------------------------------------------------------------------------------- 1 | //SPDX-License-Identifier: UNLICENSED 2 | pragma solidity 0.8.20; 3 | 4 | interface IveMAV { 5 | function stake(uint256 amount, uint256 duration, bool doDelegation) external; 6 | 7 | function unstake(uint256 lockupId) external; 8 | 9 | function balanceOf(address account) external view returns (uint256); 10 | } 11 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Morpho/IIrm.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.5.0; 3 | 4 | import {MarketParams, Market} from "./IMorpho.sol"; 5 | 6 | /// @title IIrm 7 | /// @author Morpho Labs 8 | /// @custom:contact security@morpho.org 9 | /// @notice Interface that Interest Rate Models (IRMs) used by Morpho must implement. 10 | interface IIrm { 11 | /// @notice Returns the borrow rate of the market `marketParams`. 12 | /// @dev Assumes that `market` corresponds to `marketParams`. 13 | function borrowRate(MarketParams memory marketParams, Market memory market) external returns (uint256); 14 | 15 | /// @notice Returns the borrow rate of the market `marketParams` without modifying any storage. 16 | /// @dev Assumes that `market` corresponds to `marketParams`. 17 | function borrowRateView(MarketParams memory marketParams, Market memory market) external view returns (uint256); 18 | } 19 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Morpho/IOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.5.0; 3 | 4 | /// @title IOracle 5 | /// @author Morpho Labs 6 | /// @custom:contact security@morpho.org 7 | /// @notice Interface that oracles used by Morpho must implement. 8 | /// @dev It is the user's responsibility to select markets with safe oracles. 9 | interface IOracle { 10 | /// @notice Returns the price of 1 asset of collateral token quoted in 1 asset of loan token, scaled by 1e36. 11 | /// @dev It corresponds to the price of 10**(collateral token decimals) assets of collateral token quoted in 12 | /// 10**(loan token decimals) assets of loan token with `36 + loan token decimals - collateral token decimals` 13 | /// decimals of precision. 14 | function price() external view returns (uint256); 15 | } 16 | -------------------------------------------------------------------------------- /contracts/external/interfaces/MorphoBlue/IIrm.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.5.0; 3 | 4 | import {MarketParams, Market} from "./IMorpho.sol"; 5 | 6 | /// @title IIrm 7 | /// @author Morpho Labs 8 | /// @custom:contact security@morpho.org 9 | /// @notice Interface that Interest Rate Models (IRMs) used by Morpho must implement. 10 | interface IIrm { 11 | /// @notice Returns the borrow rate of the market `marketParams`. 12 | /// @dev Assumes that `market` corresponds to `marketParams`. 13 | function borrowRate(MarketParams memory marketParams, Market memory market) external returns (uint256); 14 | 15 | /// @notice Returns the borrow rate of the market `marketParams` without modifying any storage. 16 | /// @dev Assumes that `market` corresponds to `marketParams`. 17 | function borrowRateView(MarketParams memory marketParams, Market memory market) external view returns (uint256); 18 | } 19 | -------------------------------------------------------------------------------- /contracts/external/interfaces/MorphoBlue/IOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.5.0; 3 | 4 | /// @title IOracle 5 | /// @author Morpho Labs 6 | /// @custom:contact security@morpho.org 7 | /// @notice Interface that oracles used by Morpho must implement. 8 | /// @dev It is the user's responsibility to select markets with safe oracles. 9 | interface IOracle { 10 | /// @notice Returns the price of 1 asset of collateral token quoted in 1 asset of loan token, scaled by 1e36. 11 | /// @dev It corresponds to the price of 10**(collateral token decimals) assets of collateral token quoted in 12 | /// 10**(loan token decimals) assets of loan token with `36 + loan token decimals - collateral token decimals` 13 | /// decimals of precision. 14 | function price() external view returns (uint256); 15 | } 16 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Pancakeswap/IMasterChefV3.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.8.20; 2 | 3 | interface IMasterchefV3 { 4 | function updateLiquidity(uint256 _tokenId) external; 5 | function CAKE() external view returns (address); 6 | 7 | function withdraw(uint256 _tokenId, address _to) external; 8 | } 9 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Pendle/IPPrincipalToken.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import "@openzeppelin/contracts-5.0/token/ERC20/extensions/IERC20Metadata.sol"; 5 | 6 | interface IPPrincipalToken is IERC20Metadata { 7 | function burnByYT(address user, uint256 amount) external; 8 | 9 | function mintByYT(address user, uint256 amount) external; 10 | 11 | function initialize(address _YT) external; 12 | 13 | function SY() external view returns (address); 14 | 15 | function YT() external view returns (address); 16 | 17 | function factory() external view returns (address); 18 | 19 | function expiry() external view returns (uint256); 20 | 21 | function isExpired() external view returns (bool); 22 | } 23 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Pendle/IPPtOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | pragma solidity 0.8.20; 3 | 4 | interface IPPtOracle { 5 | event SetBlockCycleNumerator(uint16 newBlockCycleNumerator); 6 | 7 | function getPtToAssetRate(address market, uint32 duration) external view returns (uint256 ptToAssetRate); 8 | 9 | function getOracleState(address market, uint32 duration) 10 | external 11 | view 12 | returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied); 13 | } 14 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Pendle/IPendleMarketDepositHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | // import "../../external/libraries/MarketApproxLib.sol"; 5 | // import "../../external/libraries/ActionBaseMintRedeem.sol"; 6 | 7 | interface IPendleMarketDepositHelper { 8 | function totalStaked(address _market) external view returns (uint256); 9 | function balance(address _market, address _address) external view returns (uint256); 10 | function depositMarket(address _market, uint256 _amount) external; 11 | function depositMarketFor(address _market, address _for, uint256 _amount) external; 12 | function withdrawMarket(address _market, uint256 _amount) external; 13 | function withdrawMarketWithClaim(address _market, uint256 _amount, bool _doClaim) external; 14 | function harvest(address _market) external; 15 | function setPoolInfo(address poolAddress, address rewarder, bool isActive) external; 16 | function setOperator(address _address, bool _value) external; 17 | function setmasterPenpie(address _masterPenpie) external; 18 | function pendleStaking() external returns (address); 19 | } 20 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Pendle/IPendleRouter.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.8.20; 2 | 3 | import "./IPActionSwapPTV3.sol"; 4 | import "./IPActionSwapYTV3.sol"; 5 | 6 | interface IPAllActionV3 is IPActionSwapPTV3, IPActionSwapYTV3 { } 7 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Pendle/IPendleStaticRouter.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.8.20; 2 | 3 | interface IPendleStaticRouter { 4 | function swapExactYtForSyStatic(address market, uint256 exactYtIn) 5 | external 6 | view 7 | returns ( 8 | uint256 netSyOut, 9 | uint256 netSyFee, 10 | uint256 priceImpact, 11 | uint256 exchangeRateAfter, 12 | // extra-info 13 | uint256 netSyOwedInt, 14 | uint256 netPYToRepaySyOwedInt, 15 | uint256 netPYToRedeemSyOutInt 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Prisma/IBorrowerOperations.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import { IERC20 } from "@openzeppelin/contracts-5.0/interfaces/IERC20.sol"; 5 | 6 | interface IBorrowerOperations { 7 | struct TroveManagerData { 8 | address collateralToken; 9 | uint16 index; 10 | } 11 | 12 | function addColl(address, address, uint256, address, address) external; 13 | 14 | function openTrove(address, address, uint256, uint256, uint256, address, address) external; 15 | 16 | function closeTrove(address troveManager, address account) external; 17 | 18 | function adjustTrove(address, address, uint256, uint256, uint256, uint256, bool, address, address) external; 19 | 20 | function setDelegateApproval(address _delegate, bool _isApproved) external; 21 | 22 | function troveManagersData(address troveManager) external view returns (TroveManagerData memory); 23 | } 24 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Prisma/IDepositToken.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import { IERC20 } from "@openzeppelin/contracts-5.0/interfaces/IERC20.sol"; 5 | 6 | interface IDepositToken is IERC20 { 7 | function deposit(address receiver, uint256 amount) external returns (bool); 8 | 9 | function withdraw(address receiver, uint256 amount) external returns (bool); 10 | 11 | function lpToken() external view returns (address); 12 | 13 | function claimReward(address) external returns (uint256, uint256, uint256); 14 | } 15 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Prisma/IStakeNTroveZap.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import { IERC20 } from "@openzeppelin/contracts-5.0/interfaces/IERC20.sol"; 5 | import { IBorrowerOperations } from "./IBorrowerOperations.sol"; 6 | 7 | interface IStakeNTroveZap { 8 | struct TroveManagerData { 9 | address collateralToken; 10 | uint16 index; 11 | } 12 | 13 | function addColl(address, uint256, address, address) external; 14 | 15 | function openTrove( 16 | address troveManager, 17 | uint256 _maxFeePercentage, 18 | uint256 ethAmount, 19 | uint256 _debtAmount, 20 | address _upperHint, 21 | address _lowerHint 22 | ) external; 23 | 24 | function borrowerOps() external view returns (IBorrowerOperations); 25 | function adjustTrove(address, uint256, uint256, uint256, bool, address, address) external; 26 | 27 | function troveManagersData(address troveManager) external view returns (TroveManagerData memory); 28 | } 29 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Prisma/TroveManager/ITroveManager.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.20; 4 | 5 | interface ITroveManager { 6 | function getTroveCollAndDebt(address _borrower) external view returns (uint256, uint256); 7 | 8 | function debtToken() external view returns (address); 9 | 10 | function getNominalICR(address _borrower) external view returns (uint256); 11 | } 12 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Silo/INotificationReceiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL-1.1 2 | pragma solidity 0.8.20; 3 | 4 | /// @title Common interface for Silo Incentive Contract 5 | interface INotificationReceiver { 6 | /// @dev Informs the contract about token transfer 7 | /// @param _token address of the token that was transferred 8 | /// @param _from sender 9 | /// @param _to receiver 10 | /// @param _amount amount that was transferred 11 | function onAfterTransfer(address _token, address _from, address _to, uint256 _amount) external; 12 | 13 | /// @dev Sanity check function 14 | /// @return always true 15 | function notificationReceiverPing() external pure returns (bytes4); 16 | } 17 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Silo/IShareToken.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL-1.1 2 | pragma solidity 0.8.20; 3 | 4 | import "@openzeppelin/contracts-5.0/token/ERC20/extensions/IERC20Metadata.sol"; 5 | 6 | import "./INotificationReceiver.sol"; 7 | 8 | interface IShareToken is IERC20Metadata { 9 | /// @notice Emitted every time receiver is notified about token transfer 10 | /// @param notificationReceiver receiver address 11 | /// @param success false if TX reverted on `notificationReceiver` side, otherwise true 12 | event NotificationSent(INotificationReceiver indexed notificationReceiver, bool success); 13 | 14 | /// @notice Mint method for Silo to create debt position 15 | /// @param _account wallet for which to mint token 16 | /// @param _amount amount of token to be minted 17 | function mint(address _account, uint256 _amount) external; 18 | 19 | /// @notice Burn method for Silo to close debt position 20 | /// @param _account wallet for which to burn token 21 | /// @param _amount amount of token to be burned 22 | function burn(address _account, uint256 _amount) external; 23 | } 24 | -------------------------------------------------------------------------------- /contracts/external/interfaces/Stargate/IStargateRouter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL-1.1 2 | 3 | pragma solidity 0.8.20; 4 | 5 | import "./IStargateLPStaking.sol"; 6 | 7 | interface IStargatePool { 8 | function amountLPtoLD(uint256 _amountLP) external view returns (uint256); 9 | 10 | function token() external view returns (address); 11 | } 12 | 13 | interface IStargateRouter { 14 | function addLiquidity(uint256 _poolId, uint256 _amountLD, address _to) external; 15 | 16 | function instantRedeemLocal(uint16 _srcPoolId, uint256 _amountLP, address _to) external returns (uint256); 17 | } 18 | -------------------------------------------------------------------------------- /contracts/external/interfaces/UNIv3/IUniswapV3Factory.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.5.0; 3 | 4 | /// @title The interface for the Uniswap V3 Factory 5 | /// @notice The Uniswap V3 Factory facilitates creation of Uniswap V3 pools and control over the protocol fees 6 | interface IUniswapV3Factory { 7 | /// @notice Returns the pool address for a given pair of tokens and a fee, or address 0 if it does not exist 8 | /// @dev tokenA and tokenB may be passed in either token0/token1 or token1/token0 order 9 | /// @param tokenA The contract address of either token0 or token1 10 | /// @param tokenB The contract address of the other token 11 | /// @param fee The fee collected upon every swap in the pool, denominated in hundredths of a bip 12 | /// @return pool The pool address 13 | function getPool(address tokenA, address tokenB, uint24 fee) external view returns (address pool); 14 | } 15 | -------------------------------------------------------------------------------- /contracts/external/interfaces/UNIv3/IUniswapV3Pool.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.5.0; 3 | 4 | /// @title Pool state that never changes 5 | /// @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values 6 | interface IUniswapV3Pool { 7 | function slot0() external view returns (uint160, int24, uint16, uint16, uint16, uint32, bool); 8 | function positions(bytes32 key) 9 | external 10 | view 11 | returns ( 12 | uint128 _liquidity, 13 | uint256 feeGrowthInside0LastX128, 14 | uint256 feeGrowthInside1LastX128, 15 | uint128 tokensOwed0, 16 | uint128 tokensOwed1 17 | ); 18 | 19 | function tickSpacing() external view returns (int24); 20 | } 21 | -------------------------------------------------------------------------------- /contracts/external/libraries/Morpho/MarketParamsLib.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity 0.8.20; 3 | 4 | import { Id, MarketParams } from "../../interfaces/MorphoBlue/IMorpho.sol"; 5 | 6 | /// @title MarketParamsLib 7 | /// @author Morpho Labs 8 | /// @custom:contact security@morpho.org 9 | /// @notice Library to convert a market to its id. 10 | library MarketParamsLib { 11 | /// @notice The length of the data used to compute the id of a market. 12 | /// @dev The length is 5 * 32 because `MarketParams` has 5 variables of 32 bytes each. 13 | uint256 internal constant MARKET_PARAMS_BYTES_LENGTH = 5 * 32; 14 | 15 | /// @notice Returns the id of the market `marketParams`. 16 | function id(MarketParams memory marketParams) internal pure returns (Id marketParamsId) { 17 | assembly ("memory-safe") { 18 | marketParamsId := keccak256(marketParams, MARKET_PARAMS_BYTES_LENGTH) 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /contracts/external/libraries/Pendle/IPPrincipalToken.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | import "@openzeppelin/contracts-5.0/token/ERC20/extensions/IERC20Metadata.sol"; 5 | 6 | interface IPPrincipalToken is IERC20Metadata { 7 | function burnByYT(address user, uint256 amount) external; 8 | 9 | function mintByYT(address user, uint256 amount) external; 10 | 11 | function initialize(address _YT) external; 12 | 13 | function SY() external view returns (address); 14 | 15 | function YT() external view returns (address); 16 | 17 | function factory() external view returns (address); 18 | 19 | function expiry() external view returns (uint256); 20 | 21 | function isExpired() external view returns (bool); 22 | } 23 | -------------------------------------------------------------------------------- /contracts/external/libraries/Pendle/IPPtOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | pragma solidity 0.8.20; 3 | 4 | interface IPPtOracle { 5 | event SetBlockCycleNumerator(uint16 newBlockCycleNumerator); 6 | 7 | function getPtToAssetRate(address market, uint32 duration) external view returns (uint256 ptToAssetRate); 8 | 9 | function getOracleState(address market, uint32 duration) 10 | external 11 | view 12 | returns (bool increaseCardinalityRequired, uint16 cardinalityRequired, bool oldestObservationSatisfied); 13 | } 14 | -------------------------------------------------------------------------------- /contracts/external/libraries/Pendle/IPendleMarketDepositHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | // import "../../external/libraries/MarketApproxLib.sol"; 5 | // import "../../external/libraries/ActionBaseMintRedeem.sol"; 6 | 7 | interface IPendleMarketDepositHelper { 8 | function totalStaked(address _market) external view returns (uint256); 9 | function balance(address _market, address _address) external view returns (uint256); 10 | function depositMarket(address _market, uint256 _amount) external; 11 | function depositMarketFor(address _market, address _for, uint256 _amount) external; 12 | function withdrawMarket(address _market, uint256 _amount) external; 13 | function withdrawMarketWithClaim(address _market, uint256 _amount, bool _doClaim) external; 14 | function harvest(address _market) external; 15 | function setPoolInfo(address poolAddress, address rewarder, bool isActive) external; 16 | function setOperator(address _address, bool _value) external; 17 | function setmasterPenpie(address _masterPenpie) external; 18 | function pendleStaking() external returns (address); 19 | } 20 | -------------------------------------------------------------------------------- /contracts/external/libraries/Pendle/MiniHelpers.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | pragma solidity 0.8.20; 3 | 4 | library MiniHelpers { 5 | function isCurrentlyExpired(uint256 expiry) internal view returns (bool) { 6 | return (expiry <= block.timestamp); 7 | } 8 | 9 | function isExpired(uint256 expiry, uint256 blockTime) internal pure returns (bool) { 10 | return (expiry <= blockTime); 11 | } 12 | 13 | function isTimeInThePast(uint256 timestamp) internal view returns (bool) { 14 | return (timestamp <= block.timestamp); // same definition as isCurrentlyExpired 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /contracts/external/libraries/Pendle/SYUtils.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-3.0-or-later 2 | pragma solidity 0.8.20; 3 | 4 | library SYUtils { 5 | uint256 internal constant ONE = 1e18; 6 | 7 | function syToAsset(uint256 exchangeRate, uint256 syAmount) internal pure returns (uint256) { 8 | return (syAmount * exchangeRate) / ONE; 9 | } 10 | 11 | function syToAssetUp(uint256 exchangeRate, uint256 syAmount) internal pure returns (uint256) { 12 | return (syAmount * exchangeRate + ONE - 1) / ONE; 13 | } 14 | 15 | function assetToSy(uint256 exchangeRate, uint256 assetAmount) internal pure returns (uint256) { 16 | return (assetAmount * ONE) / exchangeRate; 17 | } 18 | 19 | function assetToSyUp(uint256 exchangeRate, uint256 assetAmount) internal pure returns (uint256) { 20 | return (assetAmount * ONE + exchangeRate - 1) / exchangeRate; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /contracts/external/libraries/dolomite/Decimal.sol: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Copyright 2019 dYdX Trading Inc. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); 6 | you may not use this file except in compliance with the License. 7 | You may obtain a copy of the License at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | Unless required by applicable law or agreed to in writing, software 12 | distributed under the License is distributed on an "AS IS" BASIS, 13 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | See the License for the specific language governing permissions and 15 | limitations under the License. 16 | 17 | */ 18 | 19 | pragma solidity 0.8.20; 20 | pragma experimental ABIEncoderV2; 21 | 22 | /** 23 | * @title Decimal 24 | * @author dYdX 25 | * 26 | * Library that defines a fixed-point number with 18 decimal places. 27 | */ 28 | library Decimal { 29 | // ============ Constants ============ 30 | 31 | uint256 constant BASE = 10 ** 18; 32 | 33 | // ============ Structs ============ 34 | 35 | struct D256 { 36 | uint256 value; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /contracts/external/libraries/uniswap/FixedPoint96.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity >=0.4.0; 3 | 4 | /// @title FixedPoint96 5 | /// @notice A library for handling binary fixed point numbers, see https://en.wikipedia.org/wiki/Q_(number_format) 6 | /// @dev Used in SqrtPriceMath.sol 7 | library FixedPoint96 { 8 | uint8 internal constant RESOLUTION = 96; 9 | uint256 internal constant Q96 = 0x1000000000000000000000000; 10 | } 11 | -------------------------------------------------------------------------------- /contracts/governance/TimeLock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | import "@openzeppelin/contracts-5.0/governance/TimelockController.sol"; 5 | 6 | contract NoyaTimeLock is TimelockController { 7 | constructor(uint256 minDelay, address[] memory proposers, address[] memory executors, address owner) 8 | TimelockController(minDelay, proposers, executors, owner) 9 | { } 10 | } 11 | -------------------------------------------------------------------------------- /contracts/governance/Watchers.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | import "./Keepers.sol"; 5 | 6 | contract Watchers is Keepers { 7 | constructor(address[] memory _owners, uint8 _threshold) Keepers(_owners, _threshold) { } 8 | function verifyRemoveLiquidity(uint256 withdrawAmount, uint256 sentAmount, bytes memory data) external view { } 9 | } 10 | -------------------------------------------------------------------------------- /contracts/helpers/valueOracle/oracles/WETH_Oracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | contract WETH_Oracle { 5 | function latestRoundData() 6 | external 7 | view 8 | returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) 9 | { 10 | return (0, 1e18, 0, block.timestamp, 0); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /contracts/interface/ITokenTransferCallBack.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | interface ITokenTransferCallBack { 5 | function sendTokensToTrustedAddress(address token, uint256 amount, address caller, bytes calldata data) 6 | external 7 | returns (uint256); 8 | } 9 | -------------------------------------------------------------------------------- /contracts/interface/SwapHandler/ILiFi.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | interface ILiFi { 5 | /// Structs /// 6 | 7 | struct BridgeData { 8 | bytes32 transactionId; 9 | string bridge; 10 | string integrator; 11 | address referrer; 12 | address sendingAssetId; 13 | address receiver; 14 | uint256 minAmount; 15 | uint256 destinationChainId; 16 | bool hasSourceSwaps; 17 | bool hasDestinationCall; 18 | } 19 | 20 | struct SwapData { 21 | address callTo; 22 | address approveTo; 23 | address sendingAssetId; 24 | address receivingAssetId; 25 | uint256 fromAmount; 26 | bytes callData; 27 | bool requiresDeposit; 28 | } 29 | 30 | function extractBridgeData(bytes calldata data) external pure returns (BridgeData memory bridgeData); 31 | 32 | function extractGenericSwapParameters(bytes calldata data) 33 | external 34 | pure 35 | returns (address, uint256, address, address, uint256); 36 | } 37 | -------------------------------------------------------------------------------- /contracts/interface/valueOracle/AggregatorV3Interface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | interface AggregatorV3Interface { 5 | function decimals() external view returns (uint8); 6 | 7 | function description() external view returns (string memory); 8 | 9 | function version() external view returns (uint256); 10 | 11 | function getRoundData(uint80 _roundId) 12 | external 13 | view 14 | returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); 15 | 16 | function latestRoundData() 17 | external 18 | view 19 | returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound); 20 | } 21 | -------------------------------------------------------------------------------- /contracts/interface/valueOracle/INoyaValueOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | interface INoyaValueOracle { 5 | error INoyaValueOracle_Unauthorized(address sender); 6 | error INoyaOracle_ValueOracleUnavailable(address asset, address baseToken); 7 | error INoyaValueOracle_InvalidInput(); 8 | 9 | function getValue(address asset, address baseCurrency, uint256 amount) external view returns (uint256); 10 | } 11 | -------------------------------------------------------------------------------- /coverage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # generates lcov.info 4 | forge coverage --ir-minimum --report lcov 5 | 6 | 7 | lcov --version 8 | 9 | # forge does not instrument libraries https://github.com/foundry-rs/foundry/issues/4854 10 | EXCLUDE="*test* *testFoundry* *external* *mock* *node_modules* $(grep -r 'library' contracts -l)" 11 | lcov --rc lcov_branch_coverage=1 \ 12 | --output-file forge-pruned-lcov.info \ 13 | --remove lcov.info $EXCLUDE \ 14 | --ignore-errors unused 15 | 16 | if [ "$CI" != "true" ]; then 17 | genhtml --rc branch_coverage=1 \ 18 | --output-directory coverage forge-pruned-lcov.info \ 19 | --ignore-errors category \ 20 | --ignore-errors unmapped \ 21 | --dark-mode \ 22 | --show-details \ 23 | && open coverage/index.html 24 | fi 25 | -------------------------------------------------------------------------------- /deployments/constants.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": { 3 | "tokens": { 4 | "USDC": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", 5 | "DAI": "0x6B175474E89094C44Da98b954EedeAC495271d0F" 6 | }, 7 | "LZEndpoint": "0x1a44076050125825900e736c501f859c50fe728c" 8 | }, 9 | "10": { 10 | "tokens": { 11 | "USDC": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85" 12 | }, 13 | "aavePool": "0x794a61358D6845594F94dc1DB02A252b5b4814aD" 14 | }, 15 | "137": { 16 | "tokens": { 17 | "USDC": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359" 18 | } 19 | }, 20 | "8453": { 21 | "tokens": { 22 | "USDC": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" 23 | } 24 | }, 25 | "42161": { 26 | "tokens": { 27 | "USDC": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831" 28 | } 29 | }, 30 | "11155111": { 31 | "tokens": { 32 | "USDC": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", 33 | "WETH": "0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9" 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /deployments/vaultAddresses_1.json: -------------------------------------------------------------------------------- 1 | {"8453":{"accountingManager":"0x663C7979aBF08C618720D7D28E4340B204750247"},"name":"Noya Stable Vault","symbol":"Noya Stable Vault","baseToken":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","vaultId":1} -------------------------------------------------------------------------------- /deployments/vaultAddresses_110.json: -------------------------------------------------------------------------------- 1 | { "11155111": { "accountingManager": "0xD13E47c45004628984138118048aCb84e1dBA627" }, "connectors": [], "name": "Noya Stable Vault", "symbol": "Noya Stable Vault", "baseToken": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", "vaultId": 110 } 2 | -------------------------------------------------------------------------------- /deployments/vaultAddresses_111.json: -------------------------------------------------------------------------------- 1 | {"11155111":{"accountingManager":"0xce31dE67638F38D483714cE2e516FCe6066D7aE2"},"connectors":[],"name":"Noya ETH Vault 1","symbol":"Noya ETH Vault 1","baseToken":"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9","vaultId":111} -------------------------------------------------------------------------------- /deployments/vaultAddresses_112.json: -------------------------------------------------------------------------------- 1 | {"11155111":{"accountingManager":"0x6eb08C3334cF9D097f9CF86458Be5e401094aBa4"},"connectors":[],"name":"Noya ETH Vault 2","symbol":"Noya ETH Vault 2","baseToken":"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9","vaultId":112} -------------------------------------------------------------------------------- /deployments/vaultAddresses_113.json: -------------------------------------------------------------------------------- 1 | { "11155111": { "accountingManager": "0x61DbBDB46f5B731cEb719287502F242a6ABf3084" }, "connectors": [], "name": "Noya Stable Vault 2", "symbol": "Noya Stable Vault 2", "baseToken": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238", "vaultId": 113 } 2 | -------------------------------------------------------------------------------- /deployments/vaultAddresses_2.json: -------------------------------------------------------------------------------- 1 | {"8453":{"accountingManager":"0x05526a93AfF0b09D158a4abFA6Aca7A93a8C69Ea"},"name":"Noya Stable Vault","symbol":"Noya Stable Vault","baseToken":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","vaultId":2} -------------------------------------------------------------------------------- /deployments/vaultAddresses_4.json: -------------------------------------------------------------------------------- 1 | { "8453": { "accountingManager": "0x0E20FAe643ABB46f817A458B57e9Fe27b6eE0545" }, "name": "Noya Stable Vault", "symbol": "Noya Stable Vault", "baseToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "vaultId": 4 } 2 | -------------------------------------------------------------------------------- /deployments/vaultAddresses_5656.json: -------------------------------------------------------------------------------- 1 | { 2 | "8453": { "accountingManager": "0xf0Ff5Ab02f1e564Ec31A4A2FAf34bdEaACfFa645", "connectors": [{ "address": "0xb70Cec752eAc08Ca604075Ac43CC65A72A2509E3", "name": "ConnectorMock2" }] }, 3 | "name": "Noya test vault", 4 | "symbol": "Noya test vault", 5 | "baseToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", 6 | "vaultId": 5656, 7 | "connectors": [] 8 | } 9 | -------------------------------------------------------------------------------- /deploymentsOld/vaultAddresses_110.json: -------------------------------------------------------------------------------- 1 | { "11155111": { "accountingManager": "0xD13E47c45004628984138118048aCb84e1dBA627" } } 2 | -------------------------------------------------------------------------------- /deploymentsOld/vaultAddresses_111.json: -------------------------------------------------------------------------------- 1 | {"11155111":{"accountingManager":"0xce31dE67638F38D483714cE2e516FCe6066D7aE2"}} -------------------------------------------------------------------------------- /deploymentsOld/vaultAddresses_112.json: -------------------------------------------------------------------------------- 1 | {"11155111":{"accountingManager":"0x6eb08C3334cF9D097f9CF86458Be5e401094aBa4"}} -------------------------------------------------------------------------------- /deploymentsOld/vaultAddresses_113.json: -------------------------------------------------------------------------------- 1 | {"11155111":{"accountingManager":"0x61DbBDB46f5B731cEb719287502F242a6ABf3084"}} -------------------------------------------------------------------------------- /deploymentsOld/vaultAddresses_5656.json: -------------------------------------------------------------------------------- 1 | { 2 | "8453": { "accountingManager": "0xf0Ff5Ab02f1e564Ec31A4A2FAf34bdEaACfFa645" }, 3 | "name": "Noya test vault", 4 | "symbol": "Noya test vault", 5 | "baseToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", 6 | "vaultId": 5656, 7 | "connectors": [] 8 | } 9 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/%25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%2-D4A5E.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/%25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%2-D4A5E.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0-EB806.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0-EB806.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/01865d1bed0a1da3a253f05b3e79cb07-CB286.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/01865d1bed0a1da3a253f05b3e79cb07-CB286.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/01fe66bc1531b9b6fdd9f09f90bcbd2e-502DF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/01fe66bc1531b9b6fdd9f09f90bcbd2e-502DF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/045bf49f3bb3ecd3ddfc009a6af823ba-EF9F6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/045bf49f3bb3ecd3ddfc009a6af823ba-EF9F6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/055fefd2d97125fd867ff4515d4459b2-AD3C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/055fefd2d97125fd867ff4515d4459b2-AD3C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/07158b76e34c74f71b4876b66b9dff50-D54F0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/07158b76e34c74f71b4876b66b9dff50-D54F0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0ab6fddedfdca4dee0b54ab41ab4faad-3EFDA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0ab6fddedfdca4dee0b54ab41ab4faad-3EFDA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0ae311857ca5610dd4e8476c7100f7bd-A60D6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0ae311857ca5610dd4e8476c7100f7bd-A60D6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0b2f4ec055332d2b6bf28393aa335eaa-CFE53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0b2f4ec055332d2b6bf28393aa335eaa-CFE53.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0b8eb95ae05f7d8b62136d857c324c66-088A8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0b8eb95ae05f7d8b62136d857c324c66-088A8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0cf7719f20f0aaed168c3f31a3f0bceb-8014C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/0cf7719f20f0aaed168c3f31a3f0bceb-8014C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1%2AodBhlS2pFC5q6VKd8kMjZg-431C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1%2AodBhlS2pFC5q6VKd8kMjZg-431C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1-B2132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1-B2132.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1058742975481511948-4D6A3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1058742975481511948-4D6A3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1080667809002037320-8957D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1080667809002037320-8957D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1083068770823721071-EE4F6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1083068770823721071-EE4F6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1162a888c78000773591a5db6de8aa9f-DCF7E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1162a888c78000773591a5db6de8aa9f-DCF7E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1232421541312987217-F7775.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1232421541312987217-F7775.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1233171131012223026-67C35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1233171131012223026-67C35.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1233479995633172584-BBE31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1233479995633172584-BBE31.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237582033039917116-9F568.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237582033039917116-9F568.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237582204905979995-AD6AE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237582204905979995-AD6AE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237626707968790528-1E15E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237626707968790528-1E15E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237627076333539328-5DC87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1237627076333539328-5DC87.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1251418676196802632-DAF21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1251418676196802632-DAF21.gif -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/16b131a82877787357b60c3f03daef86-872DC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/16b131a82877787357b60c3f03daef86-872DC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1aea383fe7da3deeefb7a87fc44e7bca-D0D1A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1aea383fe7da3deeefb7a87fc44e7bca-D0D1A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1c662fff515f25094c31e4ed792a836a-60DA9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1c662fff515f25094c31e4ed792a836a-60DA9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f1e7-1f1ec-AB79C.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f1ea-6381F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f1f3-6F811.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f1fc-98795.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f2874ce34e1d8171e0dc5d95c212a40-1FE2A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f2874ce34e1d8171e0dc5d95c212a40-1FE2A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f3fb-E58B7.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f440-6C64D.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f446-1f3fb-38017.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f446-9CC34.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f44c-59547.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f480-94524.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f49c-71A75.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f4dc-AC641.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f50d-195C0.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f51d-7179C.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f525-8FE4F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f52e-D787F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f600-F7528.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f601-4E9BD.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f603-5E531.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f604-BF863.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f605-42B43.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f606-BE94E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f609-9EC67.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f60a-3283D.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f60e-FF6EB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f625-F009A.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f62e-FE396.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f642-83E8A.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f680-A35CE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f6a8-A8AB3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f91a-46549.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f928-6E613.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f947-62E91.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f972-F415D.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1f9e1-18A30.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1fa77-99DEC.svg: -------------------------------------------------------------------------------- 1 | Couldn't find the requested file /assets/svg/1fa77.svg in twitter/twemoji. -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/1fae0-D00A5.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2-ADBB4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2-ADBB4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/258efb44a5e3f3ccd0db6c4b11462ff2-08900.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/258efb44a5e3f3ccd0db6c4b11462ff2-08900.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2705-0589F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/274c-EA1F1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2754-09670.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2764-A3D25.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/276b6c6135d0ffb29c95a4366a16bf54-4CBDC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/276b6c6135d0ffb29c95a4366a16bf54-4CBDC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2795-3358E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/27f89631ca4378fe9e5dc30c8f2443ae-83E60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/27f89631ca4378fe9e5dc30c8f2443ae-83E60.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2aabb21256512926dd01109b34d8b6ab-A6648.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2aabb21256512926dd01109b34d8b6ab-A6648.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2bfbca239a7aeb57ce223c2825599348-87797.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2bfbca239a7aeb57ce223c2825599348-87797.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2c272237ce9e087ac5cc503d4897a9a9-42B4B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2c272237ce9e087ac5cc503d4897a9a9-42B4B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2d02fd39d6997dc5e1e0ff7e72fa22d6-B14AB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2d02fd39d6997dc5e1e0ff7e72fa22d6-B14AB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2d5106f414d37bc4f109bc42dad783e7-F4626.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2d5106f414d37bc4f109bc42dad783e7-F4626.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2e3955592c986f2d1caaf107dbe3b14f-9B819.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/2e3955592c986f2d1caaf107dbe3b14f-9B819.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3-FB033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3-FB033.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3894a1022cd38c5065dbde8e03cf8a44-5344B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3894a1022cd38c5065dbde8e03cf8a44-5344B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/38f03be5a1f4fc5a8f06307bc43bae6c-8AA93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/38f03be5a1f4fc5a8f06307bc43bae6c-8AA93.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3a97e0ab1c82948fe865244ff75d0927-83C8B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3a97e0ab1c82948fe865244ff75d0927-83C8B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3fcb70ed63af9d6c70cb3d649756c18e-909F3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/3fcb70ed63af9d6c70cb3d649756c18e-909F3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4-4551A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4-4551A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/41c795df43b437a47df528f162af27d8-C4CDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/41c795df43b437a47df528f162af27d8-C4CDB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4634554b26c5ac710fcace1ce468e6b4-DCDA1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4634554b26c5ac710fcace1ce468e6b4-DCDA1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4942acf1679d44f03339e983726e8e13-E0260.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4942acf1679d44f03339e983726e8e13-E0260.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/49b72542bc3aaa0feb2839c049c096e1-67994.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/49b72542bc3aaa0feb2839c049c096e1-67994.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/49cbd9256c8518befc46bf8651ea2d3c-B4D40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/49cbd9256c8518befc46bf8651ea2d3c-B4D40.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4de8e7cb6dfbbe8795697f1df8d66439-044AF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4de8e7cb6dfbbe8795697f1df8d66439-044AF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4eaf99d01e4b5042454b4a6a8809687a-2B18B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4eaf99d01e4b5042454b4a6a8809687a-2B18B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4fe23cba-7489-45af-b1f5-da6aec526cb7-8B8AA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/4fe23cba-7489-45af-b1f5-da6aec526cb7-8B8AA -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/50dd7f528e6efa2618511364dd0ddce0-1D481.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/50dd7f528e6efa2618511364dd0ddce0-1D481.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/568d22b97293cdd2d9b7006198d6adbc-F0132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/568d22b97293cdd2d9b7006198d6adbc-F0132.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/5e3fb61df91ed29c573265a690af4600-E824E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/5e3fb61df91ed29c573265a690af4600-E824E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/60855a399e9f25515cfcf4890e38acaa-E8745.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/60855a399e9f25515cfcf4890e38acaa-E8745.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/625-56567.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/625-56567.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/65e786c26c24f3ad91e011e953037ae5-6A1EB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/65e786c26c24f3ad91e011e953037ae5-6A1EB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/66c54ad6b6c2224e66ef8148ab5b7bcc-9BDF6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/66c54ad6b6c2224e66ef8148ab5b7bcc-9BDF6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6c5996770c985bcd6e5b68131ff2ba04-9B31E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6c5996770c985bcd6e5b68131ff2ba04-9B31E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6c5996770c985bcd6e5b68131ff2ba04-A5CF4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6c5996770c985bcd6e5b68131ff2ba04-A5CF4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6e22e8b65ff7478b41cd31dd23221860-0545A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6e22e8b65ff7478b41cd31dd23221860-0545A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6eaf3da781b7b271cac0fced99d9307e-F4569.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/6eaf3da781b7b271cac0fced99d9307e-F4569.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/750d791c21ffd3863332eea023124fa5-05646.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/750d791c21ffd3863332eea023124fa5-05646.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/75a0b4121342383258ea9cc8ff2e782b-D8B30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/75a0b4121342383258ea9cc8ff2e782b-D8B30.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/78025b51fbd5016bf80d568e3b199528-E03F8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/78025b51fbd5016bf80d568e3b199528-E03F8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/7c800e66875e3082f457492b1852cc15-5EC64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/7c800e66875e3082f457492b1852cc15-5EC64.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8043f1de89cc1387981f4990ad574c08-78DE7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8043f1de89cc1387981f4990ad574c08-78DE7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/80e24bbc2fada669f9f8a03aef044a7b-73586.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/80e24bbc2fada669f9f8a03aef044a7b-73586.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/816cfc933746a8ffd61a8a93193028c5-41002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/816cfc933746a8ffd61a8a93193028c5-41002.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/81714ec75636b04d7057352118a34e06-7565A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/81714ec75636b04d7057352118a34e06-7565A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/821fca1ff37a6d81c68b7c2f8c6c5a73-725D1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/821fca1ff37a6d81c68b7c2f8c6c5a73-725D1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893157188599838-C23B5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893157188599838-C23B5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827027075142-F23DF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827027075142-F23DF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827089727568-5FD38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827089727568-5FD38.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827315826708-F59C0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827315826708-F59C0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827409412118-10EE9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/851893827409412118-10EE9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/860bc8415fcb344bebcf89a301158ffd-36A89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/860bc8415fcb344bebcf89a301158ffd-36A89.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/86f4180c3829539aab0c6210474061a7-4349C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/86f4180c3829539aab0c6210474061a7-4349C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8beb125bbaa4085dbee1d02a58895784-398A3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8beb125bbaa4085dbee1d02a58895784-398A3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8bfdc9008b7d57ae09dffd4e6f231f9a-D4B5B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8bfdc9008b7d57ae09dffd4e6f231f9a-D4B5B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8f8910a2253655189c89796822afedd6-144A6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8f8910a2253655189c89796822afedd6-144A6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8f94fb09514d4f3663f07b1335d47a8f-4DC63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/8f94fb09514d4f3663f07b1335d47a8f-4DC63.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/910676187288846397-518CD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/910676187288846397-518CD.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9220a9ff683f654eaf5151b8663e8b53-22007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9220a9ff683f654eaf5151b8663e8b53-22007.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/930871c4671919ec697c9144a1911535-814BF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/930871c4671919ec697c9144a1911535-814BF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9547c61f37c121beb37e61cee0c642be-BB96A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9547c61f37c121beb37e61cee0c642be-BB96A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/977133670429261884-CA8EA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/977133670429261884-CA8EA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9aadff7033831607a3607223f19dd164-70E8E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9aadff7033831607a3607223f19dd164-70E8E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9bf2181404e658cab4039c07df56213f-E3E89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/9bf2181404e658cab4039c07df56213f-E3E89.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/GPypkrOXIAIqIgC-F0EE5.jpg%3Alarge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/GPypkrOXIAIqIgC-F0EE5.jpg%3Alarge -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/IMG_8562-FCE3C.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/IMG_8562-FCE3C.gif -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/Screenshot_1-770ED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/Screenshot_1-770ED.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/Screenshot_2024-05-03_at_12.12.15-6A993.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/Screenshot_2024-05-03_at_12.12.15-6A993.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a286c50d9888a0a1b503db1bd22f89b6-FE06F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a286c50d9888a0a1b503db1bd22f89b6-FE06F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a650a74d099d6cc922aab1b28354d431-C32C9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a650a74d099d6cc922aab1b28354d431-C32C9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a6d43650f9808cf64ab95248120f311a-683CC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a6d43650f9808cf64ab95248120f311a-683CC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a6defa6808e3fe166028d66a76778624-DFAA0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a6defa6808e3fe166028d66a76778624-DFAA0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/aKVs61ADx7L9tFqjrYK92hadeU-06348.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/aKVs61ADx7L9tFqjrYK92hadeU-06348.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a_9cb46a6a13f6e5f999c3e5260f076c6d-13206.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/a_9cb46a6a13f6e5f999c3e5260f076c6d-13206.gif -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/af81908f19115fe1f1541657f1152655-B4460.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/af81908f19115fe1f1541657f1152655-B4460.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/apple-touch-icon-192x192-E344C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/apple-touch-icon-192x192-E344C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/b6b0c8b38f933b4cb7d52e484a250c3b-A5BA4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/b6b0c8b38f933b4cb7d52e484a250c3b-A5BA4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/b6fa689e3e7b914e3e75638cb8f86a28-422B9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/b6fa689e3e7b914e3e75638cb8f86a28-422B9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/bea894f852e0353cdefbfc0184bb2e11-36301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/bea894f852e0353cdefbfc0184bb2e11-36301.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/bigay-ng-barya-kimpoy-feliciano-E104D.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/bigay-ng-barya-kimpoy-feliciano-E104D.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/boring-bored-9E00F.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/boring-bored-9E00F.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c0778c5fbf8f160dff42cc01b00b28e2-B0EF4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c0778c5fbf8f160dff42cc01b00b28e2-B0EF4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c0f32c0424355c03a0a9c396a7475275-D6BF8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c0f32c0424355c03a0a9c396a7475275-D6BF8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c5c9cae9cd193f1eb0c18644d30be95c-B5DEB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c5c9cae9cd193f1eb0c18644d30be95c-B5DEB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c7b9cffd574f7b6804efc58a656a3707-D58C3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c7b9cffd574f7b6804efc58a656a3707-D58C3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c934998a134e0d4d1dd6a3fb7b9f5576-BF60F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c934998a134e0d4d1dd6a3fb7b9f5576-BF60F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c9b8e94d579281b0b9b8214fd4b26ad3-FC564.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c9b8e94d579281b0b9b8214fd4b26ad3-FC564.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c9cb30134c634c9e02d0c64df4922803-98E33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/c9cb30134c634c9e02d0c64df4922803-98E33.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/cars-movie-mater-BF4E6.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/cars-movie-mater-BF4E6.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ce118028c35247ad4851fd2c0455067a-D29FB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ce118028c35247ad4851fd2c0455067a-D29FB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ce33938a6121cd196500c7b573fba65a-15E3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ce33938a6121cd196500c7b573fba65a-15E3D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/d482d56e4533980c4a4108a97afecfcb-31323.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/d482d56e4533980c4a4108a97afecfcb-31323.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/d4b3590ea4349f36f3b9b71c4d408d60-B73C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/d4b3590ea4349f36f3b9b71c4d408d60-B73C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/daffy-what-3A2FB.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/daffy-what-3A2FB.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/dead-my-honest-reaction-DB660.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/dead-my-honest-reaction-DB660.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e1404dacd584a9dd92992d44bdd22b4a-10173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e1404dacd584a9dd92992d44bdd22b4a-10173.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e31111c0206bbcd02dbc72a8c2a32a08-80083.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e31111c0206bbcd02dbc72a8c2a32a08-80083.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e6c36d4c4c46f1395e4858604ed24570-A3ECE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e6c36d4c4c46f1395e4858604ed24570-A3ECE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e9472a11f41d425badda92e53fc91864-F560D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/e9472a11f41d425badda92e53fc91864-F560D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ed2c393ef4af38f37f82a8f91043cd04-D5651.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ed2c393ef4af38f37f82a8f91043cd04-D5651.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ef353ac557c47e95ecd46e0afac40642-CEF40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ef353ac557c47e95ecd46e0afac40642-CEF40.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/f2454ae3288bfc8dfb44c9083ebd5e45-FF3C1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/f2454ae3288bfc8dfb44c9083ebd5e45-FF3C1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/f4422c70568695907d5aa7f8632b4d51-4FBE2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/f4422c70568695907d5aa7f8632b4d51-4FBE2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/f6322ae2e8b75c3cbb6e7602271c69aa-BFE51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/f6322ae2e8b75c3cbb6e7602271c69aa-BFE51.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/fa08bab3f0977d28fd8f7dbda77ad22a-4BFA7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/fa08bab3f0977d28fd8f7dbda77ad22a-4BFA7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/fa83a21e53b67793e5252e2f7d940789-B0928.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/fa83a21e53b67793e5252e2f7d940789-B0928.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-400-E988B.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-400-E988B.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-500-0777F.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-500-0777F.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-600-CB411.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-600-CB411.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-700-891AC.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-700-891AC.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-800-D36B0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-italic-800-D36B0.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-400-1456D.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-400-1456D.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-500-89CE5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-500-89CE5.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-600-C1EA8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-600-C1EA8.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-700-1949A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-700-1949A.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-800-58487.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/ggsans-normal-800-58487.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/how-long-will-that-take-ella-payne-6C45F.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/how-long-will-that-take-ella-payne-6C45F.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/i-dont-care-spend-the-money-E4DEC.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/i-dont-care-spend-the-money-E4DEC.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/i-identify-as-poor-chris-rock-ED8A7.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/i-identify-as-poor-chris-rock-ED8A7.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/i-need-that-money-brother-x-207C0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/i-need-that-money-brother-x-207C0.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/image-1A983.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/image-1A983.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/image-D4C56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/image-D4C56.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/kyriostsahs-lonely-C2F17.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/kyriostsahs-lonely-C2F17.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/loading-windows98-60F93.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/loading-windows98-60F93.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/mord-mit-aussicht-murder-with-a-view-DDBFB.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/mord-mit-aussicht-murder-with-a-view-DDBFB.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/robert-downey-jr-facepalm-0961C.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/robert-downey-jr-facepalm-0961C.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/sad-sea-A104F.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/sad-sea-A104F.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/solarized-dark.min-BA98F.css: -------------------------------------------------------------------------------- 1 | .hljs{display:block;overflow-x:auto;padding:.5em;background:#002b36;color:#839496}.hljs-comment,.hljs-quote{color:#586e75}.hljs-keyword,.hljs-selector-tag,.hljs-addition{color:#859900}.hljs-number,.hljs-string,.hljs-meta .hljs-meta-string,.hljs-literal,.hljs-doctag,.hljs-regexp{color:#2aa198}.hljs-title,.hljs-section,.hljs-name,.hljs-selector-id,.hljs-selector-class{color:#268bd2}.hljs-attribute,.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-class .hljs-title,.hljs-type{color:#b58900}.hljs-symbol,.hljs-bullet,.hljs-subst,.hljs-meta,.hljs-meta .hljs-keyword,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-link{color:#cb4b16}.hljs-built_in,.hljs-deletion{color:#dc322f}.hljs-formula{background:#073642}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/soon-cat-BE59A.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/soon-cat-BE59A.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/spaces%252Ff8wrmfL9sMgx2g3g358V%252Fsocial-0E155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/spaces%252Ff8wrmfL9sMgx2g3g358V%252Fsocial-0E155.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/spaces%252FrGMrQr7vOtFr68cv039Y%252Fsocial-37A5E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/spaces%252FrGMrQr7vOtFr68cv039Y%252Fsocial-37A5E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/stone-cold-409B7.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/stone-cold-409B7.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/super-dead-superman-84902.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/super-dead-superman-84902.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/tenor-68046.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/tenor-68046.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/viyeongg-bored-monkey-77EB9.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/viyeongg-bored-monkey-77EB9.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/waiting-waiting-patiently-C4D47.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/waiting-waiting-patiently-C4D47.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/what-monkey-04F0A.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/what-monkey-04F0A.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/when-asking-DA262.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/when-asking-DA262.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/when-you-attending-to-your-crush-wedding-s-CB2C3.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/when-you-attending-to-your-crush-wedding-s-CB2C3.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/why-really-CA826.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/why-really-CA826.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/you-have-58D99.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].html_Files/you-have-58D99.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/%25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%2-52C9A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/%25D0%25B2%25D1%2580%25D0%25B5%25D0%25BC%2-52C9A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/1%2AodBhlS2pFC5q6VKd8kMjZg-431C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/1%2AodBhlS2pFC5q6VKd8kMjZg-431C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/4fe23cba-7489-45af-b1f5-da6aec526cb7-8B8AA: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/4fe23cba-7489-45af-b1f5-da6aec526cb7-8B8AA -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/625-56567.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/625-56567.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/GPypkrOXIAIqIgC-F0EE5.jpg%3Alarge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/GPypkrOXIAIqIgC-F0EE5.jpg%3Alarge -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/IMG_8562-FCE3C.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/IMG_8562-FCE3C.gif -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/Screenshot_1-770ED.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/Screenshot_1-770ED.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/Screenshot_2024-05-03_at_12.12.15-6A993.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/Screenshot_2024-05-03_at_12.12.15-6A993.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/aKVs61ADx7L9tFqjrYK92hadeU-06348.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/aKVs61ADx7L9tFqjrYK92hadeU-06348.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/bigay-ng-barya-kimpoy-feliciano-E3135.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/bigay-ng-barya-kimpoy-feliciano-E3135.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/boring-bored-F05C5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/boring-bored-F05C5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/cars-movie-mater-802CE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/cars-movie-mater-802CE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/daffy-what-6DB31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/daffy-what-6DB31.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/dead-my-honest-reaction-521AA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/dead-my-honest-reaction-521AA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/how-long-will-that-take-ella-payne-89FF4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/how-long-will-that-take-ella-payne-89FF4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/i-dont-care-spend-the-money-2DA10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/i-dont-care-spend-the-money-2DA10.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/i-identify-as-poor-chris-rock-72EE7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/i-identify-as-poor-chris-rock-72EE7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/i-need-that-money-brother-x-0816B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/i-need-that-money-brother-x-0816B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/image-1A983.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/image-1A983.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/image-D4C56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/image-D4C56.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/kyriostsahs-lonely-80C0F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/kyriostsahs-lonely-80C0F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/loading-windows98-68E98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/loading-windows98-68E98.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/mord-mit-aussicht-murder-with-a-view-BC632.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/mord-mit-aussicht-murder-with-a-view-BC632.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/robert-downey-jr-facepalm-D0B73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/robert-downey-jr-facepalm-D0B73.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/sad-sea-D3E35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/sad-sea-D3E35.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/soon-cat-10DB2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/soon-cat-10DB2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/spaces%252Ff8wrmfL9sMgx2g3g358V%252Fsocial-0E155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/spaces%252Ff8wrmfL9sMgx2g3g358V%252Fsocial-0E155.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/spaces%252FrGMrQr7vOtFr68cv039Y%252Fsocial-37A5E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/spaces%252FrGMrQr7vOtFr68cv039Y%252Fsocial-37A5E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/stone-cold-1A90B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/stone-cold-1A90B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/super-dead-superman-87E4C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/super-dead-superman-87E4C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/tenor-E1D22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/tenor-E1D22.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/viyeongg-bored-monkey-72D34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/viyeongg-bored-monkey-72D34.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/waiting-waiting-patiently-C8F8A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/waiting-waiting-patiently-C8F8A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/what-monkey-59096.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/what-monkey-59096.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/when-asking-AFF67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/when-asking-AFF67.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/when-you-attending-to-your-crush-wedding-s-D8F74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/when-you-attending-to-your-crush-wedding-s-D8F74.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/why-really-D3751.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/why-really-D3751.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/you-have-16653.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/discord-export/Code4rena - ARCHIVE-Q2-2024 - noya-apr26 [1226982823978733698].txt_Files/you-have-16653.png -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- 1 | [profile.default] 2 | src = "contracts" 3 | out = "artifactsFoundry" 4 | libs = ["node_modules", "lib"] 5 | test = 'testFoundry' 6 | remappings = [ 7 | '@openzeppelin/=node_modules/@openzeppelin/', 8 | 'eth-gas-reporter/=node_modules/eth-gas-reporter/', 9 | 'hardhat/=node_modules/hardhat/', 10 | 'forge-std/=lib/forge-std/src/', 11 | 'ds-test/=node_modules/ds-test/src/', 12 | '@uniswap/=node_modules/@uniswap/', 13 | '@gearbox-protocol/=node_modules/@gearbox-protocol/', 14 | ] 15 | [fmt] 16 | bracket_spacing = true 17 | number_underscore = "thousands" 18 | 19 | [profile.test] 20 | src = 'testFoundry' 21 | 22 | # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options 23 | -------------------------------------------------------------------------------- /lib/forge-std/.github/workflows/sync.yml: -------------------------------------------------------------------------------- 1 | name: Sync Release Branch 2 | 3 | on: 4 | release: 5 | types: 6 | - created 7 | 8 | jobs: 9 | sync-release-branch: 10 | runs-on: ubuntu-latest 11 | if: startsWith(github.event.release.tag_name, 'v1') 12 | steps: 13 | - name: Check out the repo 14 | uses: actions/checkout@v3 15 | with: 16 | fetch-depth: 0 17 | ref: v1 18 | 19 | - name: Configure Git 20 | run: | 21 | git config user.name github-actions[bot] 22 | git config user.email 41898282+github-actions[bot]@users.noreply.github.com 23 | 24 | - name: Sync Release Branch 25 | run: | 26 | git fetch --tags 27 | git checkout v1 28 | git reset --hard ${GITHUB_REF} 29 | git push --force 30 | -------------------------------------------------------------------------------- /lib/forge-std/.gitignore: -------------------------------------------------------------------------------- 1 | cache/ 2 | out/ 3 | .vscode 4 | .idea 5 | -------------------------------------------------------------------------------- /lib/forge-std/.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/ds-test"] 2 | path = lib/ds-test 3 | url = https://github.com/dapphub/ds-test 4 | -------------------------------------------------------------------------------- /lib/forge-std/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright Contributors to Forge Standard Library 2 | 3 | Permission is hereby granted, free of charge, to any 4 | person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the 6 | Software without restriction, including without 7 | limitation the rights to use, copy, modify, merge, 8 | publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software 10 | is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice 14 | shall be included in all copies or substantial portions 15 | of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 18 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 19 | TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT 21 | SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 22 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 24 | IN CONNECTION WITH THE SOFTWARE O THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE.R 26 | -------------------------------------------------------------------------------- /lib/forge-std/foundry.toml: -------------------------------------------------------------------------------- 1 | [profile.default] 2 | fs_permissions = [{ access = "read-write", path = "./"}] 3 | 4 | [rpc_endpoints] 5 | # The RPC URLs are modified versions of the default for testing initialization. 6 | mainnet = "https://mainnet.infura.io/v3/b1d3925804e74152b316ca7da97060d3" # Different API key. 7 | optimism_goerli = "https://goerli.optimism.io/" # Adds a trailing slash. 8 | arbitrum_one_goerli = "https://goerli-rollup.arbitrum.io/rpc/" # Adds a trailing slash. 9 | needs_undefined_env_var = "${UNDEFINED_RPC_URL_PLACEHOLDER}" 10 | 11 | [fmt] 12 | # These are all the `forge fmt` defaults. 13 | line_length = 120 14 | tab_width = 4 15 | bracket_spacing = false 16 | int_types = 'long' 17 | multiline_func_header = 'attributes_first' 18 | quote_style = 'double' 19 | number_underscore = 'preserve' 20 | single_line_statement_blocks = 'preserve' 21 | ignore = ["src/console.sol", "src/console2.sol"] -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: "Build" 2 | on: 3 | pull_request: 4 | push: 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v3 10 | - uses: cachix/install-nix-action@v20 11 | with: 12 | nix_path: nixpkgs=channel:nixos-unstable 13 | extra_nix_config: | 14 | access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} 15 | 16 | - name: setup dapp binary cache 17 | uses: cachix/cachix-action@v12 18 | with: 19 | name: dapp 20 | 21 | - name: install dapptools 22 | run: nix profile install github:dapphub/dapptools#dapp --accept-flake-config 23 | 24 | - name: install foundry 25 | uses: foundry-rs/foundry-toolchain@v1 26 | 27 | - name: test with solc-0.5.17 28 | run: dapp --use solc-0.5.17 test -v 29 | 30 | - name: test with solc-0.6.11 31 | run: dapp --use solc-0.6.11 test -v 32 | 33 | - name: test with solc-0.7.6 34 | run: dapp --use solc-0.7.6 test -v 35 | 36 | - name: test with solc-0.8.18 37 | run: dapp --use solc-0.8.18 test -v 38 | 39 | - name: Run tests with foundry 40 | run: forge test -vvv 41 | 42 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/.gitignore: -------------------------------------------------------------------------------- 1 | /.dapple 2 | /build 3 | /out 4 | /cache/ 5 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/Makefile: -------------------------------------------------------------------------------- 1 | all:; dapp build 2 | 3 | test: 4 | -dapp --use solc:0.4.23 build 5 | -dapp --use solc:0.4.26 build 6 | -dapp --use solc:0.5.17 build 7 | -dapp --use solc:0.6.12 build 8 | -dapp --use solc:0.7.5 build 9 | 10 | demo: 11 | DAPP_SRC=demo dapp --use solc:0.7.5 build 12 | -hevm dapp-test --verbose 3 13 | 14 | .PHONY: test demo 15 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/default.nix: -------------------------------------------------------------------------------- 1 | { solidityPackage, dappsys }: solidityPackage { 2 | name = "ds-test"; 3 | src = ./src; 4 | } 5 | -------------------------------------------------------------------------------- /lib/forge-std/lib/ds-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ds-test", 3 | "version": "1.0.0", 4 | "description": "Assertions, equality checks and other test helpers ", 5 | "bugs": "https://github.com/dapphub/ds-test/issues", 6 | "license": "GPL-3.0", 7 | "author": "Contributors to ds-test", 8 | "files": [ 9 | "src/*" 10 | ], 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/dapphub/ds-test.git" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/forge-std/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "forge-std", 3 | "version": "1.7.2", 4 | "description": "Forge Standard Library is a collection of helpful contracts and libraries for use with Forge and Foundry.", 5 | "homepage": "https://book.getfoundry.sh/forge/forge-std", 6 | "bugs": "https://github.com/foundry-rs/forge-std/issues", 7 | "license": "(Apache-2.0 OR MIT)", 8 | "author": "Contributors to Forge Standard Library", 9 | "files": [ 10 | "src/**/*" 11 | ], 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/foundry-rs/forge-std.git" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/forge-std/src/Script.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | // 💬 ABOUT 5 | // Forge Std's default Script. 6 | 7 | // 🧩 MODULES 8 | import {console} from "./console.sol"; 9 | import {console2} from "./console2.sol"; 10 | import {safeconsole} from "./safeconsole.sol"; 11 | import {StdChains} from "./StdChains.sol"; 12 | import {StdCheatsSafe} from "./StdCheats.sol"; 13 | import {stdJson} from "./StdJson.sol"; 14 | import {stdMath} from "./StdMath.sol"; 15 | import {StdStorage, stdStorageSafe} from "./StdStorage.sol"; 16 | import {StdStyle} from "./StdStyle.sol"; 17 | import {StdUtils} from "./StdUtils.sol"; 18 | import {VmSafe} from "./Vm.sol"; 19 | 20 | // 📦 BOILERPLATE 21 | import {ScriptBase} from "./Base.sol"; 22 | 23 | // ⭐️ SCRIPT 24 | abstract contract Script is ScriptBase, StdChains, StdCheatsSafe, StdUtils { 25 | // Note: IS_SCRIPT() must return true. 26 | bool public IS_SCRIPT = true; 27 | } 28 | -------------------------------------------------------------------------------- /lib/forge-std/src/StdError.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // Panics work for versions >=0.8.0, but we lowered the pragma to make this compatible with Test 3 | pragma solidity >=0.6.2 <0.9.0; 4 | 5 | library stdError { 6 | bytes public constant assertionError = abi.encodeWithSignature("Panic(uint256)", 0x01); 7 | bytes public constant arithmeticError = abi.encodeWithSignature("Panic(uint256)", 0x11); 8 | bytes public constant divisionError = abi.encodeWithSignature("Panic(uint256)", 0x12); 9 | bytes public constant enumConversionError = abi.encodeWithSignature("Panic(uint256)", 0x21); 10 | bytes public constant encodeStorageError = abi.encodeWithSignature("Panic(uint256)", 0x22); 11 | bytes public constant popError = abi.encodeWithSignature("Panic(uint256)", 0x31); 12 | bytes public constant indexOOBError = abi.encodeWithSignature("Panic(uint256)", 0x32); 13 | bytes public constant memOverflowError = abi.encodeWithSignature("Panic(uint256)", 0x41); 14 | bytes public constant zeroVarError = abi.encodeWithSignature("Panic(uint256)", 0x51); 15 | } 16 | -------------------------------------------------------------------------------- /lib/forge-std/src/interfaces/IERC165.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2; 3 | 4 | interface IERC165 { 5 | /// @notice Query if a contract implements an interface 6 | /// @param interfaceID The interface identifier, as specified in ERC-165 7 | /// @dev Interface identification is specified in ERC-165. This function 8 | /// uses less than 30,000 gas. 9 | /// @return `true` if the contract implements `interfaceID` and 10 | /// `interfaceID` is not 0xffffffff, `false` otherwise 11 | function supportsInterface(bytes4 interfaceID) external view returns (bool); 12 | } 13 | -------------------------------------------------------------------------------- /lib/forge-std/test/Vm.t.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.8.0 <0.9.0; 3 | 4 | import {Test} from "../src/Test.sol"; 5 | import {Vm, VmSafe} from "../src/Vm.sol"; 6 | 7 | contract VmTest is Test { 8 | // This test ensures that functions are never accidentally removed from a Vm interface, or 9 | // inadvertently moved between Vm and VmSafe. This test must be updated each time a function is 10 | // added to or removed from Vm or VmSafe. 11 | function test_interfaceId() public { 12 | assertEq(type(VmSafe).interfaceId, bytes4(0x1578a242), "VmSafe"); 13 | assertEq(type(Vm).interfaceId, bytes4(0x316cedc3), "Vm"); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationScript.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScript is Script {} 11 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationScriptBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Script.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationScriptBase is ScriptBase {} 11 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationTest.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTest is Test {} 11 | -------------------------------------------------------------------------------- /lib/forge-std/test/compilation/CompilationTestBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >=0.6.2 <0.9.0; 3 | 4 | pragma experimental ABIEncoderV2; 5 | 6 | import "../../src/Test.sol"; 7 | 8 | // The purpose of this contract is to benchmark compilation time to avoid accidentally introducing 9 | // a change that results in very long compilation times with via-ir. See https://github.com/foundry-rs/forge-std/issues/207 10 | contract CompilationTestBase is TestBase {} 11 | -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- 1 | @openzeppelin/=node_modules/@openzeppelin/ 2 | eth-gas-reporter/=node_modules/eth-gas-reporter/ 3 | hardhat/=node_modules/hardhat/ 4 | forge-std/=lib/forge-std/src/ 5 | ds-test/=node_modules/ds-test/src/ 6 | @uniswap/=node_modules/@uniswap/ 7 | @gearbox-protocol/=node_modules/@gearbox-protocol/ 8 | -------------------------------------------------------------------------------- /screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-04-noya/7e7b0ffb53b516b95c7900d25fb00af8f108727f/screenshot_1.png -------------------------------------------------------------------------------- /scripts/actions/calculateDeposit.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses, readSharedAddresses } from "../utils/updateAddresses"; 2 | import { ethers } from "hardhat"; 3 | 4 | async function main() { 5 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 6 | 7 | const owner = (await ethers.getSigners())[0]; 8 | const chainId = Number(await ethers.provider.getNetwork().then((network) => network.chainId)); 9 | console.log("Chain ID:", chainId); 10 | let sharedAddresses = await readSharedAddresses(); 11 | 12 | let addresses = await readVaultAddresses(vaultId); 13 | 14 | console.log(addresses); 15 | 16 | const ContractBuilder = await ethers.getContractFactory("AccountingManager", { 17 | libraries: { 18 | TVLHelper: sharedAddresses[chainId]["TVLHelper"], 19 | }, 20 | }); 21 | const contract = await ContractBuilder.attach(addresses[chainId]["accountingManager"]); 22 | console.log("TVL of vault", vaultId, "is", await contract.connect(owner).TVL()); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/actions/getTVLOfVault.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses, readSharedAddresses } from "../utils/updateAddresses"; 2 | import { ethers } from "hardhat"; 3 | 4 | async function main() { 5 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 6 | 7 | const owner = (await ethers.getSigners())[0]; 8 | const chainId = Number(await ethers.provider.getNetwork().then((network) => network.chainId)); 9 | console.log("Chain ID:", chainId); 10 | let addresses = await readVaultAddresses(vaultId); 11 | let sharedAddresses = await readSharedAddresses(); 12 | 13 | console.log(addresses); 14 | 15 | const ContractBuilder = await ethers.getContractFactory("AccountingManager", { 16 | libraries: { 17 | TVLHelper: sharedAddresses[chainId]["TVLHelper"], 18 | }, 19 | }); 20 | const contract = await ContractBuilder.attach(addresses[chainId]["accountingManager"]); 21 | console.log("TVL of vault", vaultId, "is", await contract.TVL()); 22 | } 23 | 24 | main().catch((error) => { 25 | console.error(error); 26 | process.exitCode = 1; 27 | }); 28 | -------------------------------------------------------------------------------- /scripts/actions/rescue.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses, readSharedAddresses } from "../utils/updateAddresses"; 2 | import { ethers } from "hardhat"; 3 | 4 | async function main() { 5 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 6 | 7 | const owner = (await ethers.getSigners())[0]; 8 | const chainId = Number(await ethers.provider.getNetwork().then((network) => network.chainId)); 9 | console.log("Chain ID:", chainId); 10 | let sharedAddresses = await readSharedAddresses(); 11 | 12 | let addresses = await readVaultAddresses(vaultId); 13 | 14 | console.log(addresses); 15 | 16 | const ContractBuilder = await ethers.getContractFactory("AccountingManager", { 17 | libraries: { 18 | TVLHelper: sharedAddresses[chainId]["TVLHelper"], 19 | }, 20 | }); 21 | const contract = await ContractBuilder.attach(addresses[chainId]["accountingManager"]); 22 | await contract.connect(owner).rescue("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", await contract.connect(owner).TVL()); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dAaveConnector.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("AaveConnector"); 13 | const contract = await ContractBuilder.deploy(sharedAddresses["aaveMarket"], sharedAddresses["aaveMarketBaseToken"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "AaveConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dAerodromeConnector.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("AerodromeConnector"); 13 | const contract = await ContractBuilder.deploy((sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "AerodromeConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dBalancerConnector.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("BalancerConnector"); 13 | const contract = await ContractBuilder.deploy((sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "BalancerConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dCompoundConnector.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("CompoundConnector"); 13 | const contract = await ContractBuilder.deploy((sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "CompoundConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dFraxConnector.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("FraxConnector"); 13 | const contract = await ContractBuilder.deploy((sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "FraxConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dGearboxv3.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("Gearboxv3"); 13 | const contract = await ContractBuilder.deploy((sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "Gearboxv3", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dMorphoBlue.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("MorphoBlueConnector"); 13 | const contract = await ContractBuilder.deploy(sharedAddresses["MorphoBlue"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "MorphoBlueConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dPendle.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("PendleConnector"); 13 | const contract = await ContractBuilder.deploy(sharedAddresses["pendleMarketDepositHelper"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "PendleConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dPrisma.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("SiloConnector"); 13 | const contract = await ContractBuilder.deploy(sharedAddresses["siloRepository"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "SiloConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dSilo.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses(vaultId); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("SiloConnector"); 13 | const contract = await ContractBuilder.deploy(sharedAddresses["siloRepository"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "SiloConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/dStargate.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses("1"); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const ContractBuilder = await ethers.getContractFactory("StargateConnector"); 13 | const contract = await ContractBuilder.deploy(sharedAddresses["StargateLPStakingTime"], sharedAddresses["stargateRouter"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await contract.deployed(); 16 | console.log("contract deployed to:", contract.address); 17 | addresses["connectors"].push({ 18 | connector: contract.address, 19 | connectorType: "StargateConnector", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /scripts/deployments/deployUniswapV3Connector.ts: -------------------------------------------------------------------------------- 1 | import { readVaultAddresses, writeVaultAddresses } from "../utils/updateAddresses"; 2 | 3 | async function main() { 4 | let vaultId = "1"; // This is the vaultId of the vault we want to deploy the connector for 5 | 6 | const owner = (await ethers.getSigners())[0]; 7 | const chainId = await owner.getChainId(); 8 | let addresses = readVaultAddresses("1"); 9 | 10 | const sharedAddresses = JSON.parse(fs.readFileSync(`deployments/sharedContracts_chain_{$chainId}.json`)); 11 | 12 | const UNISWAPV3 = await ethers.getContractFactory("UNIv3Connector"); 13 | const uniswapV3 = await UNISWAPV3.deploy(sharedAddresses["uniswapV3PostitionManager"], sharedAddresses["uniswapV3Factory"], (sharedAddresses["registry"], vaultId, sharedAddresses["swapHandler"], sharedAddresses["valueOracle"])); 14 | 15 | await uniswapV3.deployed(); 16 | console.log("UNIv3Connector deployed to:", uniswapV3.address); 17 | addresses["connectors"].push({ 18 | connector: uniswapV3.address, 19 | connectorType: "UNIv3", 20 | chainId: chainId, 21 | }); 22 | writeVaultAddresses(vaultId, addresses); 23 | } 24 | 25 | main().catch((error) => { 26 | console.error(error); 27 | process.exitCode = 1; 28 | }); 29 | -------------------------------------------------------------------------------- /slither.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "filter_paths": "(/testFoundry/|/artifactsFoundry/|/lib/|/scripts/|/node_modules/|/external/|/interface/)" 3 | } -------------------------------------------------------------------------------- /testFoundry/utils/mocks/EmergancyMock.sol: -------------------------------------------------------------------------------- 1 | interface IRescueable { 2 | function rescue(address token, uint256 amount) external; 3 | function rescueFunds(address token, address userAddress, uint256 amount) external; 4 | } 5 | 6 | contract EmergancyMock { 7 | bool public accept = true; 8 | 9 | receive() external payable { 10 | require(accept, "Not accepting ether"); 11 | } 12 | 13 | function setAccept(bool _accept) external { 14 | accept = _accept; 15 | } 16 | 17 | function callRescue(address _vault, address _token, uint256 _amount) external { 18 | // This function is empty, and only used for testing purposes 19 | IRescueable(_vault).rescue(_token, _amount); 20 | } 21 | 22 | function callRescueFunds(address _vault, address _token, address _user, uint256 _amount) external { 23 | // This function is empty, and only used for testing purposes 24 | IRescueable(_vault).rescueFunds(_token, _user, _amount); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /testFoundry/utils/mocks/IDiamondCut.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.8.20; 3 | 4 | interface IDiamondCut { 5 | enum FacetCutAction { 6 | Add, 7 | Replace, 8 | Remove 9 | } 10 | // Add=0, Replace=1, Remove=2 11 | 12 | struct FacetCut { 13 | address facetAddress; 14 | FacetCutAction action; 15 | bytes4[] functionSelectors; 16 | } 17 | 18 | /// @notice Add/replace/remove any number of functions and optionally execute 19 | /// a function with delegatecall 20 | /// @param _diamondCut Contains the facet addresses and function selectors 21 | /// @param _init The address of the contract or facet to execute _calldata 22 | /// @param _calldata A function call, including function selector and arguments 23 | /// _calldata is executed with delegatecall on _init 24 | function diamondCut(FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata) external; 25 | 26 | event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata); 27 | } 28 | -------------------------------------------------------------------------------- /testFoundry/utils/mocks/IrmMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: GPL-2.0-or-later 2 | pragma solidity ^0.8.0; 3 | 4 | import { IIrm } from "contracts/external/interfaces/MorphoBlue/IIrm.sol"; 5 | import { MarketParams, Market } from "contracts/external/interfaces/MorphoBlue/IMorpho.sol"; 6 | import { IOracle } from "contracts/external/interfaces/MorphoBlue/IOracle.sol"; 7 | 8 | import { MathLib } from "contracts/external/libraries/Morpho/MathLib.sol"; 9 | 10 | contract IrmMock is IIrm { 11 | using MathLib for uint128; 12 | 13 | function borrowRateView(MarketParams memory, Market memory market) public pure returns (uint256) { 14 | if (market.totalSupplyAssets == 0) return 0; 15 | 16 | uint256 utilization = market.totalBorrowAssets.wDivDown(market.totalSupplyAssets); 17 | 18 | // Divide by the number of seconds in a year. 19 | // This is a very simple model where x% utilization corresponds to x% APR. 20 | return utilization / 365 days; 21 | } 22 | 23 | function borrowRate(MarketParams memory marketParams, Market memory market) external pure returns (uint256) { 24 | return borrowRateView(marketParams, market); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /testFoundry/utils/mocks/MockDataFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: Apache-2.0 2 | pragma solidity 0.8.20; 3 | 4 | import { AggregatorV3Interface } from "contracts/interface/valueOracle/AggregatorV3Interface.sol"; 5 | 6 | contract MockData { 7 | int256 public mockAnswer; 8 | uint256 public mockUpdatedAt; 9 | uint256 public constant decimals = 1e8; 10 | 11 | constructor() { } 12 | 13 | function latestRoundData() 14 | external 15 | view 16 | returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) 17 | { 18 | roundId = 0; 19 | answer = mockAnswer; 20 | startedAt = 0; 21 | updatedAt = mockUpdatedAt; 22 | answeredInRound = 0; 23 | } 24 | 25 | function latestAnswer() external view returns (int256 answer) { 26 | answer = mockAnswer; 27 | } 28 | 29 | function setAnswer(int256 ans, uint256 time) external { 30 | mockAnswer = ans; 31 | mockUpdatedAt = time; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2020", 4 | "module": "commonjs", 5 | "esModuleInterop": true, 6 | "forceConsistentCasingInFileNames": true, 7 | "strict": true, 8 | "skipLibCheck": true, 9 | "resolveJsonModule": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /utils/lifi/LiFi.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch'); 2 | 3 | 4 | const fromAddress = process.argv[2]; 5 | const toAddress = process.argv[3]; 6 | const fromAmount = process.argv[4]; 7 | const fromToken = process.argv[5]; 8 | const toToken = process.argv[6]; 9 | const fromChain = process.argv[7]; 10 | const toChain = process.argv[8]; 11 | 12 | 13 | const url = `https://li.quest/v1/quote?fromChain=${fromChain}&toChain=${toChain}&fromToken=${fromToken}&toToken=${toToken}&fromAddress=${fromAddress}&toAddress=${toAddress}&fromAmount=${fromAmount}&integrator=noya.ai`; 14 | 15 | const options = { method: "GET", headers: { accept: "application/json" } }; 16 | 17 | fetch(url, options) 18 | .then((response) => response.json()) 19 | .then((response) => { 20 | if (response.transactionRequest == undefined) { 21 | console.log("0"); 22 | return; 23 | } 24 | // const dataValue = response.transactionRequest.data.substring(2); 25 | const dataValue = response.transactionRequest.data; 26 | console.log(dataValue); 27 | }); 28 | -------------------------------------------------------------------------------- /utils/lifi/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lifi", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "LiFi.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node LiFi.js" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "node-fetch": "^2.7.0" 15 | } 16 | } 17 | --------------------------------------------------------------------------------