├── .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 |
--------------------------------------------------------------------------------