├── .gitignore ├── .gitmodules ├── 4naly3er-report.md ├── LICENSE ├── README.md ├── bot-report.json ├── bot-report.md ├── discord-export ├── Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html ├── Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files │ ├── 0-EB806.png │ ├── 02410a37de8a54f8cfb7a8842a2dd162-D2755.png │ ├── 03878b802af671a663ff1eb0fbd1d064-75057.png │ ├── 045bf49f3bb3ecd3ddfc009a6af823ba-EF9F6.png │ ├── 07158b76e34c74f71b4876b66b9dff50-D54F0.png │ ├── 08f60799b586a4207660c40a8ef91b57-7DBB2.png │ ├── 0aa942b3bb6813f4882a9f9c199c30b1-29116.png │ ├── 0bb949d30436a6064281c56d2b7c8591-06A7C.png │ ├── 0cd316a9fd5f98cba6c91f10f010ad96-01BB3.png │ ├── 0dd6255142c84dcc6ec663458ed3fda9-E98D2.png │ ├── 0e7b7430cad0cecfe37bdfe0fe2612e8-24CF2.png │ ├── 1-B2132.png │ ├── 1034832936807186472-75AD6.png │ ├── 1083068770823721071-EE4F6.png │ ├── 108db4db43a8df92fb224ce27c8419ec-5A94A.png │ ├── 1162a888c78000773591a5db6de8aa9f-DCF7E.png │ ├── 1189708280449208350-73062.png │ ├── 15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png │ ├── 1628fc11e7961d85181295493426b775-1A3BD.png │ ├── 178dabd907133bbea3b2d27c723cb8c7-134C8.png │ ├── 17a7b799ece5d046588e4d143018d963-32DB3.png │ ├── 17e75583b024fe9606de1525a9f6752a-2E795.png │ ├── 17eaa2bba131d5a47944511f180930e0-E8791.png │ ├── 1d3ee8a85bdb38661da993daa0743a92-03106.png │ ├── 1e5982e49add2de1a31302f1c8110784-9173D.png │ ├── 1f1eb-9D845.svg │ ├── 1f1f3-1f1ec-22AE2.svg │ ├── 1f1f9-6373B.svg │ ├── 1f1fc-98795.svg │ ├── 1f31f-1B968.svg │ ├── 1f389-5C738.svg │ ├── 1f3c1-445DC.svg │ ├── 1f3c6-621A1.svg │ ├── 1f3fb-E58B7.svg │ ├── 1f43a-EB486.svg │ ├── 1f440-6C64D.svg │ ├── 1f446-9CC34.svg │ ├── 1f44b-8A059.svg │ ├── 1f44c-1f3fc-65EFB.svg │ ├── 1f44c-59547.svg │ ├── 1f44d-1f3fb-ED2AA.svg │ ├── 1f44d-1f3fd-A1A75.svg │ ├── 1f44d-27259.svg │ ├── 1f44f-3D381.svg │ ├── 1f451-B565E.svg │ ├── 1f480-94524.svg │ ├── 1f49c-71A75.svg │ ├── 1f4a5-28689.svg │ ├── 1f4a8-89124.svg │ ├── 1f4aa-1f3fb-AF516.svg │ ├── 1f4aa-2FD27.svg │ ├── 1f4af-4CFF5.svg │ ├── 1f4b8-E3468.svg │ ├── 1f4c6-44E30.svg │ ├── 1f4c8-E041F.svg │ ├── 1f4dc-AC641.svg │ ├── 1f50d-195C0.svg │ ├── 1f525-8FE4F.svg │ ├── 1f575-AC616.svg │ ├── 1f600-F7528.svg │ ├── 1f601-4E9BD.svg │ ├── 1f602-168C5.svg │ ├── 1f604-BF863.svg │ ├── 1f605-42B43.svg │ ├── 1f606-BE94E.svg │ ├── 1f609-9EC67.svg │ ├── 1f60d-BEAFF.svg │ ├── 1f610-B3309.svg │ ├── 1f613-6F24E.svg │ ├── 1f621-066B3.svg │ ├── 1f62d-02603.svg │ ├── 1f62e-FE396.svg │ ├── 1f63f-B7EE8.svg │ ├── 1f642-83E8A.svg │ ├── 1f64a-268FF.svg │ ├── 1f64c-7C820.svg │ ├── 1f64f-22B8D.svg │ ├── 1f680-A35CE.svg │ ├── 1f6a8-A8AB3.svg │ ├── 1f911-F346C.svg │ ├── 1f914-15707.svg │ ├── 1f916-AD810.svg │ ├── 1f91d-5A0F2.svg │ ├── 1f923-5854E.svg │ ├── 1f937-19884.svg │ ├── 1f942-69B5E.svg │ ├── 1f972-F415D.svg │ ├── 1f973-88B39.svg │ ├── 1f9c2-77306.svg │ ├── 1f9d1-5BC80.svg │ ├── 1f9e8-E97D0.svg │ ├── 1fac2-960B6.svg │ ├── 1fae1-B19DE.svg │ ├── 1fae3-64122.svg │ ├── 1fd32ac56949d1f4f227b9f9ea49b172-18598.png │ ├── 2-ADBB4.png │ ├── 201416e548301c474985cfff30a5c3cf-AF15B.png │ ├── 258a1ffc46d9e9c3872ad643ab9b4bd5-EE2DC.png │ ├── 258efb44a5e3f3ccd0db6c4b11462ff2-08900.png │ ├── 2696-15F4A.svg │ ├── 2705-0589F.svg │ ├── 2764-A3D25.svg │ ├── 2764-fe0f-200d-1f525-0B2B8.svg │ ├── 2a9faff195fe333526cfe6ae6fce1420-49B98.png │ ├── 2d6787bdb95b96bbd4bb506fce387f6b-542A1.png │ ├── 2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png │ ├── 2f6cc5f2cecfbebff93f500257ed9598-15FF9.png │ ├── 3-FB033.png │ ├── 32a014807325eea976c45c9812b22740-B6291.png │ ├── 34d55120f0bbb31b27daed995d2a9a12-D3479.png │ ├── 366b7bd30566c2cb7cfbe6ce4a9cb61e-62DA9.png │ ├── 38345df4dc378bf63df3ff7f6c6160e7-300B6.png │ ├── 4-4551A.png │ ├── 453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png │ ├── 4634554b26c5ac710fcace1ce468e6b4-DCDA1.png │ ├── 4ae1da5bf047e45212f9a27cba8456b4-E667F.png │ ├── 5-E9BDB.png │ ├── 508adf8d67504a78c726c08ee474a114-7241A.png │ ├── 512e9f9dcafcd4b1c90fe34f49e563a8-AFD1C.png │ ├── 52b3426598252ddef0aa3bca077b9f58-DE4BD.png │ ├── 52b8521890e27c4a62cb3df684ab0592-E5E35.png │ ├── 55afac51a32db1ff015fd3a7d901e67a-A5862.png │ ├── 560973b2140560b88a880aa333f18a18-BA038.png │ ├── 568d22b97293cdd2d9b7006198d6adbc-F0132.png │ ├── 59310062b6d5aa6af2d911cb4f109bc4-B8F92.png │ ├── 5c38d47c92a89a5c128eea62c5332550-C4CFE.png │ ├── 63b9ea95120032f3dbb20224194dde0f-52B92.png │ ├── 6738f0f683face7b5e6d5289a3fbef10-57324.png │ ├── 67594ee4b4d1fc03bca468327a0d145b-BD76A.png │ ├── 686334388711194636-46BDA.png │ ├── 6d439dd5d806d44c17afd557a7f118cb-DAC2E.png │ ├── 6de37165a7ca9e8f1b2ea522ad099476-57E0F.png │ ├── 6f399e9fca566efc7f15af9a1f25f6b7-23E91.png │ ├── 6f5d0c29e49ffcf03ee84ab949219c0d-A044C.png │ ├── 7010b9b61dee2db6e0832d963c407ae5-D5E65.png │ ├── 701300a5bdd3bf5640bd1370251533e2-0DC47.png │ ├── 74c444ce8a15ac04da773b17117d56f6-ADB20.png │ ├── 8043f1de89cc1387981f4990ad574c08-78DE7.png │ ├── 80b63b8eef8e8e0bef63af4cd4598430-39256.png │ ├── 812cf3c4f7f563d0034c75e4c5532e4c-D6142.png │ ├── 821fca1ff37a6d81c68b7c2f8c6c5a73-725D1.png │ ├── 83fa622da18abee1baf881ee7d3dd8da-76C8A.png │ ├── 851893826846457866-1AD3D.png │ ├── 851893827027075142-F23DF.png │ ├── 851893827089727568-5FD38.png │ ├── 851893827278602280-FABCC.png │ ├── 851893827315826708-F59C0.png │ ├── 860bc8415fcb344bebcf89a301158ffd-36A89.png │ ├── 8cc5e51acc73110b0ed31735a6c37e70-54F99.png │ ├── 9010cff7dc5115048ddc82561051356b-12341.png │ ├── 910676187288846397-518CD.png │ ├── 932336619116179566-82BD2.png │ ├── 947a786543be742dcae523bbd2635632-34882.png │ ├── 94oxTfKozXK9ARCn8HxT-40621.png │ ├── 95c24c67d97a24dc7c8872fd3cff0ebd-9FF57.png │ ├── 96e1f00b8906ec1e8fb70a888d681191-9FBBA.png │ ├── 970d2e2f00cd7ef2134a1a3f21326349-404EA.png │ ├── 977133670429261884-CA8EA.png │ ├── 97f28aeb8df24f0f6fc6cdb8c01b7d29-B1B46.png │ ├── 98843994faa05570c8a9a44fe2bf8e7d-98BFE.png │ ├── 9dae367c2914db90ec5f86da55c97b23-1BB00.png │ ├── Capture_decran_2024-01-21_a_10.06.20-CEDA2.png │ ├── GEaeKH8bIAAxThD-310B2.jpg%3Alarge │ ├── Powershell_01-DEF0E.jpg │ ├── Screenshot_2024-01-22_at_11.04.17_AM-D35FC.png │ ├── Screenshot_402-37BBC.png │ ├── Screenshot_from_2024-01-19_17-18-43-DBD98.png │ ├── Screenshot_from_2024-01-19_17-25-04-2211C.png │ ├── a043b2457bb42c44a17b01929c21a3ac-82CA9.png │ ├── a391d11d44b4fa3b03db46148a071229-B48B3.png │ ├── a6662b109ac2b287a214bbbabbec79bf-FBD97.png │ ├── a90b1cde3fba61e1776222d13459ffb9-73317.png │ ├── aff06889bf863f2bdd6f17822c86dd05-A1D85.png │ ├── apple-touch-icon-192x192-E344C.png │ ├── audits-17CA0 │ ├── b0fa46fcf237f5497b71eea9d38eeeeb-2A6D7.png │ ├── b1720f68b83fb99be3e8f6ff85b2184c-33970.png │ ├── b4af9e6ca5e7e218f2e21407babb2588-8E1D8.png │ ├── b5c5564bbdaa22a1e2d459e9bf6aef5a-B3AC0.png │ ├── b81a1d960dd9d5e792d85408692b6486-E5502.png │ ├── bb9f76664711c9b5009e7a6add580b29-7CFF5.png │ ├── bd6e705b7e22db04232dfaaf530eee5f-A1D9E.png │ ├── c17696ac338660162399145c58c2e792-05AC5.png │ ├── c2546661a841fcb6634a6c1326a606b9-08FAC.png │ ├── c34499b357419bf0b80d3379b004fd11-53E2E.png │ ├── c4-og-banner-A082C.png │ ├── c47d52c806aea627c7b227b287ce8808-40688.png │ ├── c6b85a4a6ca07ab15a30a24f570be5b8-2B16A.png │ ├── c735717c-40bb-4e49-aa83-42e5dfa0846f-DE13A │ ├── c9cb30134c634c9e02d0c64df4922803-98E33.png │ ├── ca167442070a75d1ccbcd48bd4854886-53550.png │ ├── ca714e239d7d0800fe9175cf43f8f877-3B91A.png │ ├── ccf05b57676cd0a8105703e0b735b280-3BFF5.png │ ├── cd524f78cb8a7426f6497d2a56aa3931-9BF2F.png │ ├── cf5ff95c34041d7d559e8ba777b048e1-119CB.png │ ├── d17cb151966d230d5eb26a6fc3ac100c-9BF75.png │ ├── d2303645d3d52c487a931fe06cad0240-42828.png │ ├── d352b5d64239648acbeb7b6f310df0b8-E875A.png │ ├── d482d56e4533980c4a4108a97afecfcb-31323.png │ ├── d4881bb27043538c26e7b31a7f8b85d2-5DA7D.png │ ├── d9fa0ae50d731854d342f81d679964af-D6B3D.png │ ├── d9zjlrJR-29B78.png │ ├── dd0b02132544c612d48d10270e412d9b-9486F.png │ ├── ddf6a89ae9aac05d44873a73357cce1a-DF8FF.png │ ├── df507fe1346c7c5fe2c1e560b1e8d1d0-EF39D.png │ ├── download-_14_-8F0BD.jpg │ ├── e42ab213024788a841cee166db94c007-B1203.png │ ├── e62adf01d6955f4b6891294799a46369-81807.png │ ├── e6f4ca0e498c6a1841fd2181890d7668-D7F35.png │ ├── ead7bda50531bbe6590401e4a9b86e91-17A23.png │ ├── ec2bcb7830d93aed7b07ee0d3a51e605-19997.png │ ├── ece049bda85fdcdb08ba4595daf9e38a-48509.png │ ├── f23d0ae29fcc5a63df0b1e99990a51f7-8A74E.png │ ├── f33f913c6ffd96f63fd3911fe087f010-68168.png │ ├── f3dd487f29b8a2fe5068df67201ef3ef-54E8E.png │ ├── f4422c70568695907d5aa7f8632b4d51-4FBE2.png │ ├── f7110af75e4ab630e47f509ae07920e6-909F7.png │ ├── fa2aee31bff7302bd48ce60a8aef846f-FD473.png │ ├── failedtest-67B13.png │ ├── fbe30ea40824c9990a93836a24db1610-F5D34.png │ ├── fd032d1c27ba593b4fbe6be4c074663d-78A1D.png │ ├── feb79bb6c3285f43d25af82703f76106-392DC.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 │ ├── image-151B2.png │ ├── image-1D5B8.png │ ├── image-2E365.png │ ├── image-325FD.png │ ├── image-46BDB.png │ ├── image-55796.png │ ├── image-6E21D.png │ ├── image-92947.png │ ├── image-9AFF7.png │ ├── image-9CAB5.png │ ├── image-A8BC8.png │ ├── image-AFAF4.png │ ├── image-CAE56.png │ ├── image-E18C4.png │ ├── lKlpFOKp3ZAIdzIWdTSc-E5AF8.png │ ├── lottie.min-99657.js │ ├── publications-65459 │ ├── saltyio_error1-B2C75.png │ ├── solarized-dark.min-BA98F.css │ ├── star-wars-yoda-4D8F0.mp4 │ ├── waiting-for-you-A109E.mp4 │ └── waiting-waiting-patiently-F880C.mp4 ├── Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt └── Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files │ ├── 94oxTfKozXK9ARCn8HxT-40621.png │ ├── Capture_decran_2024-01-21_a_10.06.20-CEDA2.png │ ├── GEaeKH8bIAAxThD-310B2.jpg%3Alarge │ ├── Powershell_01-DEF0E.jpg │ ├── Screenshot_2024-01-22_at_11.04.17_AM-D35FC.png │ ├── Screenshot_402-37BBC.png │ ├── Screenshot_from_2024-01-19_17-18-43-DBD98.png │ ├── Screenshot_from_2024-01-19_17-25-04-2211C.png │ ├── audits-17CA0 │ ├── c4-og-banner-A082C.png │ ├── c735717c-40bb-4e49-aa83-42e5dfa0846f-DE13A │ ├── d9zjlrJR-29B78.png │ ├── download-_14_-8F0BD.jpg │ ├── failedtest-67B13.png │ ├── image-151B2.png │ ├── image-1D5B8.png │ ├── image-2E365.png │ ├── image-325FD.png │ ├── image-46BDB.png │ ├── image-55796.png │ ├── image-6E21D.png │ ├── image-92947.png │ ├── image-9AFF7.png │ ├── image-9CAB5.png │ ├── image-A8BC8.png │ ├── image-AFAF4.png │ ├── image-CAE56.png │ ├── image-E18C4.png │ ├── lKlpFOKp3ZAIdzIWdTSc-E5AF8.png │ ├── maxresdefault-6C6F8.jpg │ ├── publications-65459 │ ├── saltyio_error1-B2C75.png │ ├── star-wars-yoda-E3998.png │ ├── waiting-for-you-1615B.png │ └── waiting-waiting-patiently-273E5.png ├── foundry.toml ├── remappings.txt ├── scope.txt └── src ├── AccessManager.sol ├── ExchangeConfig.sol ├── ManagedWallet.sol ├── Salt.sol ├── SigningTools.sol ├── Upkeep.sol ├── arbitrage ├── ArbitrageSearch.sol └── tests │ ├── Arbitrage.t.sol │ ├── ArbitrageGas.t.sol │ ├── ArbitrageSearch.t.sol │ ├── TestArbitrageSearch.sol │ └── TestArbitrageSearch.t.sol ├── dao ├── DAO.sol ├── DAOConfig.sol ├── Parameters.sol ├── Proposals.sol ├── interfaces │ ├── ICalledContract.sol │ ├── IDAO.sol │ ├── IDAOConfig.sol │ └── IProposals.sol └── tests │ ├── DAO.t.sol │ ├── ExcessiveSupplyToken.sol │ ├── Parameters.t.sol │ ├── Proposals.t.sol │ ├── TestCallReceiver.sol │ └── TestParameters.sol ├── dev ├── Deployment.sol ├── Utils.sol └── tests │ └── Utils.t.sol ├── interfaces ├── IAccessManager.sol ├── IExchangeConfig.sol ├── IManagedWallet.sol ├── ISalt.sol └── IUpkeep.sol ├── launch ├── Airdrop.sol ├── BootstrapBallot.sol ├── InitialDistribution.sol ├── interfaces │ ├── IAirdrop.sol │ ├── IBootstrapBallot.sol │ └── IInitialDistribution.sol └── tests │ ├── Airdrop.t.sol │ ├── BootstrapBallot.t.sol │ └── InitialDistribution.t.sol ├── pools ├── PoolMath.sol ├── PoolStats.sol ├── PoolUtils.sol ├── Pools.sol ├── PoolsConfig.sol ├── interfaces │ ├── IPoolStats.sol │ ├── IPools.sol │ └── IPoolsConfig.sol └── tests │ ├── PoolStats.t.sol │ ├── PoolUtils.t.sol │ ├── Pools.t.sol │ ├── Pools2.t.sol │ └── PoolsConfig.t.sol ├── price_feed ├── CoreChainlinkFeed.sol ├── CoreSaltyFeed.sol ├── CoreUniswapFeed.sol ├── PriceAggregator.sol ├── interfaces │ ├── IPriceAggregator.sol │ └── IPriceFeed.sol └── tests │ ├── CoreChainlinkFeed.t.sol │ ├── CoreFeeds.t.sol │ ├── CoreSaltyFeed.t.sol │ ├── CoreUniswapFeed.t.sol │ ├── EthFeeds.t.sol │ ├── ForcedPriceFeed.sol │ ├── IForcedPriceFeed.sol │ ├── PriceAggregator.t.sol │ ├── PriceAggregatorGas.t.sol │ ├── TestChainlinkAggregator.sol │ ├── TestPriceAggregator.sol │ └── TestUniswapFeed.sol ├── rewards ├── Emissions.sol ├── RewardsConfig.sol ├── RewardsEmitter.sol ├── SaltRewards.sol ├── interfaces │ ├── IEmissions.sol │ ├── IRewardsConfig.sol │ ├── IRewardsEmitter.sol │ └── ISaltRewards.sol └── tests │ ├── Emissions.t.sol │ ├── RewardsEmitter.t.sol │ ├── SaltRewards.t.sol │ └── TestSaltRewards.sol ├── root_tests ├── AccessManager.t.sol ├── Deployment.t.sol ├── ExchangeConfig.t.sol ├── ITestUpkeep.sol ├── IUpkeepFlawed.sol ├── ManagedWallet.t.sol ├── Salt.t.sol ├── Sandwich.t.sol ├── SplitSwaps.t.sol ├── TestERC20.sol ├── TestWETH.sol ├── Upkeep.t.sol ├── UpkeepEdge.t.sol ├── UpkeepFlawed.sol ├── UpkeepFlawed.t.sol ├── UpkeepMaxGas.t.sol └── UpkeepMinGas.t.sol ├── scenario_tests └── Comprehensive1.t.sol ├── stable ├── CollateralAndLiquidity.sol ├── Liquidizer.sol ├── StableConfig.sol ├── USDS.sol ├── interfaces │ ├── ICollateralAndLiquidity.sol │ ├── ILiquidizer.sol │ ├── IStableConfig.sol │ └── IUSDS.sol └── tests │ ├── CollateralAndLiquidity.t.sol │ ├── Liquidizer.t.sol │ ├── StableConfig.t.sol │ └── USDS.t.sol └── staking ├── Liquidity.sol ├── Staking.sol ├── StakingConfig.sol ├── StakingRewards.sol ├── interfaces ├── ILiquidity.sol ├── IStaking.sol ├── IStakingConfig.sol └── IStakingRewards.sol └── tests ├── Liquidity.t.sol ├── Staking.t.sol ├── Staking2.t.sol ├── StakingRewards.t.sol └── TestStakingRewards.sol /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/openzeppelin-contracts"] 2 | path = lib/openzeppelin-contracts 3 | url = https://github.com/openzeppelin/openzeppelin-contracts 4 | [submodule "lib/v3-core"] 5 | path = lib/v3-core 6 | url = https://github.com/Uniswap/v3-core 7 | [submodule "lib/chainlink"] 8 | path = lib/chainlink 9 | url = https://github.com/smartcontractkit/chainlink 10 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0-EB806.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0-EB806.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/02410a37de8a54f8cfb7a8842a2dd162-D2755.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/02410a37de8a54f8cfb7a8842a2dd162-D2755.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/03878b802af671a663ff1eb0fbd1d064-75057.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/03878b802af671a663ff1eb0fbd1d064-75057.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/045bf49f3bb3ecd3ddfc009a6af823ba-EF9F6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/045bf49f3bb3ecd3ddfc009a6af823ba-EF9F6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/07158b76e34c74f71b4876b66b9dff50-D54F0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/07158b76e34c74f71b4876b66b9dff50-D54F0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/08f60799b586a4207660c40a8ef91b57-7DBB2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/08f60799b586a4207660c40a8ef91b57-7DBB2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0aa942b3bb6813f4882a9f9c199c30b1-29116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0aa942b3bb6813f4882a9f9c199c30b1-29116.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0bb949d30436a6064281c56d2b7c8591-06A7C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0bb949d30436a6064281c56d2b7c8591-06A7C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0cd316a9fd5f98cba6c91f10f010ad96-01BB3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0cd316a9fd5f98cba6c91f10f010ad96-01BB3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0dd6255142c84dcc6ec663458ed3fda9-E98D2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0dd6255142c84dcc6ec663458ed3fda9-E98D2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0e7b7430cad0cecfe37bdfe0fe2612e8-24CF2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/0e7b7430cad0cecfe37bdfe0fe2612e8-24CF2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1-B2132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1-B2132.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1034832936807186472-75AD6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1034832936807186472-75AD6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1083068770823721071-EE4F6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1083068770823721071-EE4F6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/108db4db43a8df92fb224ce27c8419ec-5A94A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/108db4db43a8df92fb224ce27c8419ec-5A94A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1162a888c78000773591a5db6de8aa9f-DCF7E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1162a888c78000773591a5db6de8aa9f-DCF7E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1189708280449208350-73062.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1189708280449208350-73062.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/15cdaa10c5644d913a1ab1f9f06288c1-8A82B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1628fc11e7961d85181295493426b775-1A3BD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1628fc11e7961d85181295493426b775-1A3BD.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/178dabd907133bbea3b2d27c723cb8c7-134C8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/178dabd907133bbea3b2d27c723cb8c7-134C8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/17a7b799ece5d046588e4d143018d963-32DB3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/17a7b799ece5d046588e4d143018d963-32DB3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/17e75583b024fe9606de1525a9f6752a-2E795.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/17e75583b024fe9606de1525a9f6752a-2E795.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/17eaa2bba131d5a47944511f180930e0-E8791.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/17eaa2bba131d5a47944511f180930e0-E8791.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1d3ee8a85bdb38661da993daa0743a92-03106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1d3ee8a85bdb38661da993daa0743a92-03106.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1e5982e49add2de1a31302f1c8110784-9173D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1e5982e49add2de1a31302f1c8110784-9173D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f1eb-9D845.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f1f3-1f1ec-22AE2.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f1f9-6373B.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f1fc-98795.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f31f-1B968.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f3c1-445DC.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f3c6-621A1.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f3fb-E58B7.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f440-6C64D.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f446-9CC34.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f44b-8A059.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f44c-1f3fc-65EFB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f44c-59547.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f44d-1f3fb-ED2AA.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f44d-1f3fd-A1A75.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f44d-27259.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f451-B565E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f480-94524.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f49c-71A75.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4a5-28689.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4a8-89124.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4aa-1f3fb-AF516.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4aa-2FD27.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4af-4CFF5.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4c6-44E30.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4c8-E041F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f4dc-AC641.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f50d-195C0.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f525-8FE4F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f600-F7528.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f601-4E9BD.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f602-168C5.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f604-BF863.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f605-42B43.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f606-BE94E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f609-9EC67.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f60d-BEAFF.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f610-B3309.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f613-6F24E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f621-066B3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f62d-02603.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f62e-FE396.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f642-83E8A.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f64f-22B8D.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f680-A35CE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f6a8-A8AB3.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f914-15707.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f916-AD810.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f923-5854E.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f937-19884.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f972-F415D.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f9c2-77306.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f9d1-5BC80.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1f9e8-E97D0.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1fac2-960B6.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1fae1-B19DE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1fd32ac56949d1f4f227b9f9ea49b172-18598.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/1fd32ac56949d1f4f227b9f9ea49b172-18598.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2-ADBB4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2-ADBB4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/201416e548301c474985cfff30a5c3cf-AF15B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/201416e548301c474985cfff30a5c3cf-AF15B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/258a1ffc46d9e9c3872ad643ab9b4bd5-EE2DC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/258a1ffc46d9e9c3872ad643ab9b4bd5-EE2DC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/258efb44a5e3f3ccd0db6c4b11462ff2-08900.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/258efb44a5e3f3ccd0db6c4b11462ff2-08900.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2696-15F4A.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2705-0589F.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2764-A3D25.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2d6787bdb95b96bbd4bb506fce387f6b-542A1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2d6787bdb95b96bbd4bb506fce387f6b-542A1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2f6cc5f2cecfbebff93f500257ed9598-15FF9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/2f6cc5f2cecfbebff93f500257ed9598-15FF9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/3-FB033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/3-FB033.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/32a014807325eea976c45c9812b22740-B6291.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/32a014807325eea976c45c9812b22740-B6291.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/34d55120f0bbb31b27daed995d2a9a12-D3479.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/34d55120f0bbb31b27daed995d2a9a12-D3479.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/366b7bd30566c2cb7cfbe6ce4a9cb61e-62DA9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/366b7bd30566c2cb7cfbe6ce4a9cb61e-62DA9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/38345df4dc378bf63df3ff7f6c6160e7-300B6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/38345df4dc378bf63df3ff7f6c6160e7-300B6.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/4-4551A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/4-4551A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/453eac052c6c6b7a61d2f55848c5bdc6-FCF15.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/4634554b26c5ac710fcace1ce468e6b4-DCDA1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/4634554b26c5ac710fcace1ce468e6b4-DCDA1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/4ae1da5bf047e45212f9a27cba8456b4-E667F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/4ae1da5bf047e45212f9a27cba8456b4-E667F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/5-E9BDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/5-E9BDB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/508adf8d67504a78c726c08ee474a114-7241A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/508adf8d67504a78c726c08ee474a114-7241A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/512e9f9dcafcd4b1c90fe34f49e563a8-AFD1C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/512e9f9dcafcd4b1c90fe34f49e563a8-AFD1C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/52b3426598252ddef0aa3bca077b9f58-DE4BD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/52b3426598252ddef0aa3bca077b9f58-DE4BD.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/52b8521890e27c4a62cb3df684ab0592-E5E35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/52b8521890e27c4a62cb3df684ab0592-E5E35.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/55afac51a32db1ff015fd3a7d901e67a-A5862.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/55afac51a32db1ff015fd3a7d901e67a-A5862.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/560973b2140560b88a880aa333f18a18-BA038.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/560973b2140560b88a880aa333f18a18-BA038.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/568d22b97293cdd2d9b7006198d6adbc-F0132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/568d22b97293cdd2d9b7006198d6adbc-F0132.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/59310062b6d5aa6af2d911cb4f109bc4-B8F92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/59310062b6d5aa6af2d911cb4f109bc4-B8F92.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/5c38d47c92a89a5c128eea62c5332550-C4CFE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/5c38d47c92a89a5c128eea62c5332550-C4CFE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/63b9ea95120032f3dbb20224194dde0f-52B92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/63b9ea95120032f3dbb20224194dde0f-52B92.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6738f0f683face7b5e6d5289a3fbef10-57324.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6738f0f683face7b5e6d5289a3fbef10-57324.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/686334388711194636-46BDA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/686334388711194636-46BDA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6d439dd5d806d44c17afd557a7f118cb-DAC2E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6d439dd5d806d44c17afd557a7f118cb-DAC2E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6de37165a7ca9e8f1b2ea522ad099476-57E0F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6de37165a7ca9e8f1b2ea522ad099476-57E0F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6f399e9fca566efc7f15af9a1f25f6b7-23E91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6f399e9fca566efc7f15af9a1f25f6b7-23E91.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6f5d0c29e49ffcf03ee84ab949219c0d-A044C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/6f5d0c29e49ffcf03ee84ab949219c0d-A044C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/7010b9b61dee2db6e0832d963c407ae5-D5E65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/7010b9b61dee2db6e0832d963c407ae5-D5E65.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/701300a5bdd3bf5640bd1370251533e2-0DC47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/701300a5bdd3bf5640bd1370251533e2-0DC47.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/74c444ce8a15ac04da773b17117d56f6-ADB20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/74c444ce8a15ac04da773b17117d56f6-ADB20.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/8043f1de89cc1387981f4990ad574c08-78DE7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/8043f1de89cc1387981f4990ad574c08-78DE7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/80b63b8eef8e8e0bef63af4cd4598430-39256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/80b63b8eef8e8e0bef63af4cd4598430-39256.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/812cf3c4f7f563d0034c75e4c5532e4c-D6142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/812cf3c4f7f563d0034c75e4c5532e4c-D6142.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/821fca1ff37a6d81c68b7c2f8c6c5a73-725D1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/821fca1ff37a6d81c68b7c2f8c6c5a73-725D1.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/83fa622da18abee1baf881ee7d3dd8da-76C8A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/83fa622da18abee1baf881ee7d3dd8da-76C8A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893826846457866-1AD3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893826846457866-1AD3D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827027075142-F23DF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827027075142-F23DF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827089727568-5FD38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827089727568-5FD38.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827278602280-FABCC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827278602280-FABCC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827315826708-F59C0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/851893827315826708-F59C0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/860bc8415fcb344bebcf89a301158ffd-36A89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/860bc8415fcb344bebcf89a301158ffd-36A89.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/8cc5e51acc73110b0ed31735a6c37e70-54F99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/8cc5e51acc73110b0ed31735a6c37e70-54F99.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/9010cff7dc5115048ddc82561051356b-12341.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/9010cff7dc5115048ddc82561051356b-12341.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/910676187288846397-518CD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/910676187288846397-518CD.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/932336619116179566-82BD2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/932336619116179566-82BD2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/947a786543be742dcae523bbd2635632-34882.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/947a786543be742dcae523bbd2635632-34882.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/94oxTfKozXK9ARCn8HxT-40621.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/94oxTfKozXK9ARCn8HxT-40621.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/95c24c67d97a24dc7c8872fd3cff0ebd-9FF57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/95c24c67d97a24dc7c8872fd3cff0ebd-9FF57.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/96e1f00b8906ec1e8fb70a888d681191-9FBBA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/96e1f00b8906ec1e8fb70a888d681191-9FBBA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/977133670429261884-CA8EA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/977133670429261884-CA8EA.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/97f28aeb8df24f0f6fc6cdb8c01b7d29-B1B46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/97f28aeb8df24f0f6fc6cdb8c01b7d29-B1B46.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/98843994faa05570c8a9a44fe2bf8e7d-98BFE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/98843994faa05570c8a9a44fe2bf8e7d-98BFE.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/9dae367c2914db90ec5f86da55c97b23-1BB00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/9dae367c2914db90ec5f86da55c97b23-1BB00.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Capture_decran_2024-01-21_a_10.06.20-CEDA2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Capture_decran_2024-01-21_a_10.06.20-CEDA2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/GEaeKH8bIAAxThD-310B2.jpg%3Alarge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/GEaeKH8bIAAxThD-310B2.jpg%3Alarge -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Powershell_01-DEF0E.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Powershell_01-DEF0E.jpg -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_2024-01-22_at_11.04.17_AM-D35FC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_2024-01-22_at_11.04.17_AM-D35FC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_402-37BBC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_402-37BBC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_from_2024-01-19_17-18-43-DBD98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_from_2024-01-19_17-18-43-DBD98.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_from_2024-01-19_17-25-04-2211C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/Screenshot_from_2024-01-19_17-25-04-2211C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a043b2457bb42c44a17b01929c21a3ac-82CA9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a043b2457bb42c44a17b01929c21a3ac-82CA9.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a391d11d44b4fa3b03db46148a071229-B48B3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a391d11d44b4fa3b03db46148a071229-B48B3.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a6662b109ac2b287a214bbbabbec79bf-FBD97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a6662b109ac2b287a214bbbabbec79bf-FBD97.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a90b1cde3fba61e1776222d13459ffb9-73317.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/a90b1cde3fba61e1776222d13459ffb9-73317.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/aff06889bf863f2bdd6f17822c86dd05-A1D85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/aff06889bf863f2bdd6f17822c86dd05-A1D85.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/apple-touch-icon-192x192-E344C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/apple-touch-icon-192x192-E344C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/audits-17CA0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/audits-17CA0 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b0fa46fcf237f5497b71eea9d38eeeeb-2A6D7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b0fa46fcf237f5497b71eea9d38eeeeb-2A6D7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b1720f68b83fb99be3e8f6ff85b2184c-33970.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b1720f68b83fb99be3e8f6ff85b2184c-33970.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b4af9e6ca5e7e218f2e21407babb2588-8E1D8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b4af9e6ca5e7e218f2e21407babb2588-8E1D8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b5c5564bbdaa22a1e2d459e9bf6aef5a-B3AC0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b5c5564bbdaa22a1e2d459e9bf6aef5a-B3AC0.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b81a1d960dd9d5e792d85408692b6486-E5502.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/b81a1d960dd9d5e792d85408692b6486-E5502.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/bb9f76664711c9b5009e7a6add580b29-7CFF5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/bb9f76664711c9b5009e7a6add580b29-7CFF5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/bd6e705b7e22db04232dfaaf530eee5f-A1D9E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/bd6e705b7e22db04232dfaaf530eee5f-A1D9E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c17696ac338660162399145c58c2e792-05AC5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c17696ac338660162399145c58c2e792-05AC5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c2546661a841fcb6634a6c1326a606b9-08FAC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c2546661a841fcb6634a6c1326a606b9-08FAC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c34499b357419bf0b80d3379b004fd11-53E2E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c34499b357419bf0b80d3379b004fd11-53E2E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c4-og-banner-A082C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c4-og-banner-A082C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c47d52c806aea627c7b227b287ce8808-40688.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c47d52c806aea627c7b227b287ce8808-40688.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c6b85a4a6ca07ab15a30a24f570be5b8-2B16A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c6b85a4a6ca07ab15a30a24f570be5b8-2B16A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c735717c-40bb-4e49-aa83-42e5dfa0846f-DE13A: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c735717c-40bb-4e49-aa83-42e5dfa0846f-DE13A -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c9cb30134c634c9e02d0c64df4922803-98E33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/c9cb30134c634c9e02d0c64df4922803-98E33.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ca167442070a75d1ccbcd48bd4854886-53550.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ca167442070a75d1ccbcd48bd4854886-53550.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ca714e239d7d0800fe9175cf43f8f877-3B91A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ca714e239d7d0800fe9175cf43f8f877-3B91A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ccf05b57676cd0a8105703e0b735b280-3BFF5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ccf05b57676cd0a8105703e0b735b280-3BFF5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/cd524f78cb8a7426f6497d2a56aa3931-9BF2F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/cd524f78cb8a7426f6497d2a56aa3931-9BF2F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/cf5ff95c34041d7d559e8ba777b048e1-119CB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/cf5ff95c34041d7d559e8ba777b048e1-119CB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d17cb151966d230d5eb26a6fc3ac100c-9BF75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d17cb151966d230d5eb26a6fc3ac100c-9BF75.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d2303645d3d52c487a931fe06cad0240-42828.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d2303645d3d52c487a931fe06cad0240-42828.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d352b5d64239648acbeb7b6f310df0b8-E875A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d352b5d64239648acbeb7b6f310df0b8-E875A.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d482d56e4533980c4a4108a97afecfcb-31323.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d482d56e4533980c4a4108a97afecfcb-31323.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d4881bb27043538c26e7b31a7f8b85d2-5DA7D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d4881bb27043538c26e7b31a7f8b85d2-5DA7D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d9fa0ae50d731854d342f81d679964af-D6B3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d9fa0ae50d731854d342f81d679964af-D6B3D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d9zjlrJR-29B78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/d9zjlrJR-29B78.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/dd0b02132544c612d48d10270e412d9b-9486F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/dd0b02132544c612d48d10270e412d9b-9486F.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ddf6a89ae9aac05d44873a73357cce1a-DF8FF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ddf6a89ae9aac05d44873a73357cce1a-DF8FF.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/df507fe1346c7c5fe2c1e560b1e8d1d0-EF39D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/df507fe1346c7c5fe2c1e560b1e8d1d0-EF39D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/download-_14_-8F0BD.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/download-_14_-8F0BD.jpg -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/e42ab213024788a841cee166db94c007-B1203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/e42ab213024788a841cee166db94c007-B1203.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/e62adf01d6955f4b6891294799a46369-81807.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/e62adf01d6955f4b6891294799a46369-81807.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/e6f4ca0e498c6a1841fd2181890d7668-D7F35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/e6f4ca0e498c6a1841fd2181890d7668-D7F35.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ead7bda50531bbe6590401e4a9b86e91-17A23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ead7bda50531bbe6590401e4a9b86e91-17A23.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ec2bcb7830d93aed7b07ee0d3a51e605-19997.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ec2bcb7830d93aed7b07ee0d3a51e605-19997.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ece049bda85fdcdb08ba4595daf9e38a-48509.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ece049bda85fdcdb08ba4595daf9e38a-48509.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f23d0ae29fcc5a63df0b1e99990a51f7-8A74E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f23d0ae29fcc5a63df0b1e99990a51f7-8A74E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f33f913c6ffd96f63fd3911fe087f010-68168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f33f913c6ffd96f63fd3911fe087f010-68168.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f3dd487f29b8a2fe5068df67201ef3ef-54E8E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f3dd487f29b8a2fe5068df67201ef3ef-54E8E.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f4422c70568695907d5aa7f8632b4d51-4FBE2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f4422c70568695907d5aa7f8632b4d51-4FBE2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f7110af75e4ab630e47f509ae07920e6-909F7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/f7110af75e4ab630e47f509ae07920e6-909F7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/fa2aee31bff7302bd48ce60a8aef846f-FD473.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/fa2aee31bff7302bd48ce60a8aef846f-FD473.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/failedtest-67B13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/failedtest-67B13.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/fbe30ea40824c9990a93836a24db1610-F5D34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/fbe30ea40824c9990a93836a24db1610-F5D34.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/fd032d1c27ba593b4fbe6be4c074663d-78A1D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/fd032d1c27ba593b4fbe6be4c074663d-78A1D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/feb79bb6c3285f43d25af82703f76106-392DC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/feb79bb6c3285f43d25af82703f76106-392DC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-400-E988B.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-400-E988B.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-500-0777F.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-500-0777F.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-600-CB411.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-600-CB411.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-700-891AC.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-700-891AC.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-800-D36B0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-italic-800-D36B0.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-400-1456D.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-400-1456D.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-500-89CE5.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-500-89CE5.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-600-C1EA8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-600-C1EA8.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-700-1949A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-700-1949A.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-800-58487.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/ggsans-normal-800-58487.woff2 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-151B2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-151B2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-1D5B8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-1D5B8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-2E365.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-2E365.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-325FD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-325FD.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-46BDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-46BDB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-55796.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-55796.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-6E21D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-6E21D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-92947.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-92947.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-9AFF7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-9AFF7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-9CAB5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-9CAB5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-A8BC8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-A8BC8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-AFAF4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-AFAF4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-CAE56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-CAE56.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-E18C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/image-E18C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/lKlpFOKp3ZAIdzIWdTSc-E5AF8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/lKlpFOKp3ZAIdzIWdTSc-E5AF8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/publications-65459: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/publications-65459 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/saltyio_error1-B2C75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/saltyio_error1-B2C75.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].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-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/star-wars-yoda-4D8F0.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/star-wars-yoda-4D8F0.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/waiting-for-you-A109E.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/waiting-for-you-A109E.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/waiting-waiting-patiently-F880C.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].html_Files/waiting-waiting-patiently-F880C.mp4 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/94oxTfKozXK9ARCn8HxT-40621.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/94oxTfKozXK9ARCn8HxT-40621.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Capture_decran_2024-01-21_a_10.06.20-CEDA2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Capture_decran_2024-01-21_a_10.06.20-CEDA2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/GEaeKH8bIAAxThD-310B2.jpg%3Alarge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/GEaeKH8bIAAxThD-310B2.jpg%3Alarge -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Powershell_01-DEF0E.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Powershell_01-DEF0E.jpg -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_2024-01-22_at_11.04.17_AM-D35FC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_2024-01-22_at_11.04.17_AM-D35FC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_402-37BBC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_402-37BBC.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_from_2024-01-19_17-18-43-DBD98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_from_2024-01-19_17-18-43-DBD98.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_from_2024-01-19_17-25-04-2211C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/Screenshot_from_2024-01-19_17-25-04-2211C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/audits-17CA0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/audits-17CA0 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/c4-og-banner-A082C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/c4-og-banner-A082C.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/c735717c-40bb-4e49-aa83-42e5dfa0846f-DE13A: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/c735717c-40bb-4e49-aa83-42e5dfa0846f-DE13A -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/d9zjlrJR-29B78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/d9zjlrJR-29B78.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/download-_14_-8F0BD.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/download-_14_-8F0BD.jpg -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/failedtest-67B13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/failedtest-67B13.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-151B2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-151B2.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-1D5B8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-1D5B8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-2E365.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-2E365.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-325FD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-325FD.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-46BDB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-46BDB.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-55796.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-55796.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-6E21D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-6E21D.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-92947.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-92947.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-9AFF7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-9AFF7.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-9CAB5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-9CAB5.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-A8BC8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-A8BC8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-AFAF4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-AFAF4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-CAE56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-CAE56.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-E18C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/image-E18C4.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/lKlpFOKp3ZAIdzIWdTSc-E5AF8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/lKlpFOKp3ZAIdzIWdTSc-E5AF8.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/maxresdefault-6C6F8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/maxresdefault-6C6F8.jpg -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/publications-65459: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/publications-65459 -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/saltyio_error1-B2C75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/saltyio_error1-B2C75.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/star-wars-yoda-E3998.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/star-wars-yoda-E3998.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/waiting-for-you-1615B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/waiting-for-you-1615B.png -------------------------------------------------------------------------------- /discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/waiting-waiting-patiently-273E5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code-423n4/2024-01-salty/01eb9e21f1d0aa7a058897914bbca9c994d314e0/discord-export/Code4rena - ARCHIVE-Q1-2024 - salty-jan16 [1194275679924129893].txt_Files/waiting-waiting-patiently-273E5.png -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- 1 | [profile.default] 2 | src = "src" 3 | out = "out" 4 | libs = ["lib"] 5 | optimizer_runs = 20000 6 | 7 | # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options 8 | -------------------------------------------------------------------------------- /remappings.txt: -------------------------------------------------------------------------------- 1 | chainlink/=lib/chainlink/ 2 | ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/ 3 | erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/ 4 | forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/ 5 | openzeppelin-contracts/=lib/openzeppelin-contracts/ 6 | openzeppelin/=lib/openzeppelin-contracts/contracts/ 7 | v3-core/=lib/v3-core/contracts/ 8 | -------------------------------------------------------------------------------- /scope.txt: -------------------------------------------------------------------------------- 1 | src/arbitrage/ArbitrageSearch.sol 2 | src/dao/DAO.sol 3 | src/dao/DAOConfig.sol 4 | src/dao/Proposals.sol 5 | src/dao/Parameters.sol 6 | src/launch/Airdrop.sol 7 | src/launch/BootstrapBallot.sol 8 | src/launch/InitialDistribution.sol 9 | src/pools/PoolUtils.sol 10 | src/pools/PoolsConfig.sol 11 | src/pools/PoolStats.sol 12 | src/pools/Pools.sol 13 | src/pools/PoolMath.sol 14 | src/price_feed/CoreChainlinkFeed.sol 15 | src/price_feed/CoreUniswapFeed.sol 16 | src/price_feed/PriceAggregator.sol 17 | src/price_feed/CoreSaltyFeed.sol 18 | src/rewards/RewardsConfig.sol 19 | src/rewards/Emissions.sol 20 | src/rewards/RewardsEmitter.sol 21 | src/rewards/SaltRewards.sol 22 | src/stable/USDS.sol 23 | src/stable/StableConfig.sol 24 | src/stable/CollateralAndLiquidity.sol 25 | src/stable/Liquidizer.sol 26 | src/staking/StakingConfig.sol 27 | src/staking/Liquidity.sol 28 | src/staking/StakingRewards.sol 29 | src/staking/Staking.sol 30 | src/ManagedWallet.sol 31 | src/AccessManager.sol 32 | src/Salt.sol 33 | src/SigningTools.sol 34 | src/Upkeep.sol 35 | src/ExchangeConfig.sol -------------------------------------------------------------------------------- /src/Salt.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; 5 | import "./interfaces/ISalt.sol"; 6 | 7 | 8 | contract Salt is ISalt, ERC20 9 | { 10 | event SALTBurned(uint256 amount); 11 | 12 | uint256 public constant MILLION_ETHER = 1000000 ether; 13 | uint256 public constant INITIAL_SUPPLY = 100 * MILLION_ETHER ; 14 | 15 | 16 | constructor() 17 | ERC20( "Salt", "SALT" ) 18 | { 19 | _mint( msg.sender, INITIAL_SUPPLY ); 20 | } 21 | 22 | 23 | // SALT tokens will need to be sent here before they are burned. 24 | // There should otherwise be no SALT balance in this contract. 25 | function burnTokensInContract() external 26 | { 27 | uint256 balance = balanceOf( address(this) ); 28 | _burn( address(this), balance ); 29 | 30 | emit SALTBurned(balance); 31 | } 32 | 33 | 34 | // === VIEWS === 35 | function totalBurned() external view returns (uint256) 36 | { 37 | return INITIAL_SUPPLY - totalSupply(); 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /src/SigningTools.sol: -------------------------------------------------------------------------------- 1 | pragma solidity =0.8.22; 2 | 3 | 4 | library SigningTools 5 | { 6 | // The public address of the signer for verfication of BootstrapBallot voting and default AccessManager 7 | address constant public EXPECTED_SIGNER = 0x1234519DCA2ef23207E1CA7fd70b96f281893bAa; 8 | 9 | 10 | // Verify that the messageHash was signed by the authoratative signer. 11 | function _verifySignature(bytes32 messageHash, bytes memory signature ) internal pure returns (bool) 12 | { 13 | require( signature.length == 65, "Invalid signature length" ); 14 | 15 | bytes32 r; 16 | bytes32 s; 17 | uint8 v; 18 | 19 | assembly 20 | { 21 | r := mload (add (signature, 0x20)) 22 | s := mload (add (signature, 0x40)) 23 | v := mload (add (signature, 0x41)) 24 | } 25 | 26 | address recoveredAddress = ecrecover(messageHash, v, r, s); 27 | 28 | return (recoveredAddress == EXPECTED_SIGNER); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/arbitrage/tests/TestArbitrageSearch.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; 5 | import "../../interfaces/IExchangeConfig.sol"; 6 | import "../../pools/PoolUtils.sol"; 7 | import "../ArbitrageSearch.sol"; 8 | 9 | 10 | contract TestArbitrageSearch is ArbitrageSearch 11 | { 12 | constructor( IExchangeConfig _exchangeConfig ) 13 | ArbitrageSearch(_exchangeConfig) 14 | { 15 | } 16 | 17 | function arbitragePath( IERC20 swapTokenIn, IERC20 swapTokenOut ) public view returns (IERC20 arbToken2, IERC20 arbToken3) 18 | { 19 | return _arbitragePath(swapTokenIn, swapTokenOut ); 20 | } 21 | 22 | 23 | // Perform a modified binary search to search for the bestArbAmountIn in a range of 1% to 125% of swapAmountInValueInETH. 24 | // The search will be done using a binary search algorithm where profits are determined at the midpoint of the current range, and also just to the right of the midpoint. 25 | // Assuming that the profit function is unimodal (which may not actually be true), the two profit calculations at and near the midpoint can show us which half of the range the maximum profit is in. 26 | function bisectionSearch( uint256 swapAmountInValueInETH, uint256 reservesA0, uint256 reservesA1, uint256 reservesB0, uint256 reservesB1, uint256 reservesC0, uint256 reservesC1 ) public pure returns (uint256 bestArbAmountIn) 27 | { 28 | return _bisectionSearch( swapAmountInValueInETH, reservesA0, reservesA1, reservesB0, reservesB1, reservesC0, reservesC1 ); 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/dao/interfaces/ICalledContract.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface ICalledContract 6 | { 7 | function callFromDAO(uint256) external; 8 | } -------------------------------------------------------------------------------- /src/dao/interfaces/IDAO.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../../rewards/interfaces/ISaltRewards.sol"; 5 | import "../../stable/interfaces/IUSDS.sol"; 6 | import "../../pools/interfaces/IPools.sol"; 7 | import "../../interfaces/ISalt.sol"; 8 | 9 | interface IDAO 10 | { 11 | function finalizeBallot( uint256 ballotID ) external; 12 | 13 | function withdrawArbitrageProfits( IERC20 weth ) external returns (uint256 withdrawnAmount); 14 | function formPOL( IERC20 tokenA, IERC20 tokenB, uint256 amountA, uint256 amountB ) external; 15 | function processRewardsFromPOL() external; 16 | function withdrawPOL( IERC20 tokenA, IERC20 tokenB, uint256 percentToLiquidate ) external; 17 | 18 | // Views 19 | function pools() external view returns (IPools); 20 | function websiteURL() external view returns (string memory); 21 | function countryIsExcluded( string calldata country ) external view returns (bool); 22 | } -------------------------------------------------------------------------------- /src/dao/interfaces/IDAOConfig.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IDAOConfig 6 | { 7 | function changeBootstrappingRewards(bool increase) external; // onlyOwner 8 | function changePercentPolRewardsBurned(bool increase) external; // onlyOwner 9 | function changeBaseBallotQuorumPercent(bool increase) external; // onlyOwner 10 | function changeBallotDuration(bool increase) external; // onlyOwner 11 | function changeRequiredProposalPercentStake(bool increase) external; // onlyOwner 12 | function changeMaxPendingTokensForWhitelisting(bool increase) external; // onlyOwner 13 | function changeArbitrageProfitsPercentPOL(bool increase) external; // onlyOwner 14 | function changeUpkeepRewardPercent(bool increase) external; // onlyOwner 15 | 16 | // Views 17 | function bootstrappingRewards() external view returns (uint256); 18 | function percentPolRewardsBurned() external view returns (uint256); 19 | function baseBallotQuorumPercentTimes1000() external view returns (uint256); 20 | function ballotMinimumDuration() external view returns (uint256); 21 | function requiredProposalPercentStakeTimes1000() external view returns (uint256); 22 | function maxPendingTokensForWhitelisting() external view returns (uint256); 23 | function arbitrageProfitsPercentPOL() external view returns (uint256); 24 | function upkeepRewardPercent() external view returns (uint256); 25 | } -------------------------------------------------------------------------------- /src/dao/tests/ExcessiveSupplyToken.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; 5 | 6 | 7 | contract ExcessiveSupplyToken is ERC20 8 | { 9 | constructor() 10 | ERC20( "TEST", "TEST" ) 11 | { 12 | _mint( msg.sender, uint256(type(uint112).max) + 1 ); 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/dao/tests/TestCallReceiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../interfaces/ICalledContract.sol"; 5 | 6 | 7 | contract TestCallReceiver is ICalledContract 8 | { 9 | uint256 public value; 10 | 11 | 12 | function callFromDAO(uint256 n ) external 13 | { 14 | value = n; 15 | } 16 | } -------------------------------------------------------------------------------- /src/dao/tests/TestParameters.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../Parameters.sol"; 5 | 6 | contract TestParameters is Parameters 7 | { 8 | function executeParameterChange( ParameterTypes parameterType, bool increase, IPoolsConfig poolsConfig, IStakingConfig stakingConfig, IRewardsConfig rewardsConfig, IStableConfig stableConfig, IDAOConfig daoConfig, IPriceAggregator priceAggregator ) public 9 | { 10 | _executeParameterChange( parameterType, increase, poolsConfig, stakingConfig, rewardsConfig, stableConfig, daoConfig, priceAggregator ); 11 | } 12 | } -------------------------------------------------------------------------------- /src/interfaces/IAccessManager.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IAccessManager 6 | { 7 | function excludedCountriesUpdated() external; 8 | function grantAccess(bytes calldata signature) external; 9 | 10 | // Views 11 | function geoVersion() external view returns (uint256); 12 | function walletHasAccess(address wallet) external view returns (bool); 13 | } 14 | -------------------------------------------------------------------------------- /src/interfaces/IExchangeConfig.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/finance/VestingWallet.sol"; 5 | import "../stable/interfaces/ICollateralAndLiquidity.sol"; 6 | import "../launch/interfaces/IInitialDistribution.sol"; 7 | import "../rewards/interfaces/IRewardsEmitter.sol"; 8 | import "../rewards/interfaces/ISaltRewards.sol"; 9 | import "../rewards/interfaces/IEmissions.sol"; 10 | import "../interfaces/IAccessManager.sol"; 11 | import "../launch/interfaces/IAirdrop.sol"; 12 | import "../stable/interfaces/IUSDS.sol"; 13 | import "../dao/interfaces/IDAO.sol"; 14 | import "../interfaces/ISalt.sol"; 15 | import "./IUpkeep.sol"; 16 | import "./IManagedWallet.sol"; 17 | 18 | 19 | interface IExchangeConfig 20 | { 21 | function setContracts( IDAO _dao, IUpkeep _upkeep, IInitialDistribution _initialDistribution, IAirdrop _airdrop, VestingWallet _teamVestingWallet, VestingWallet _daoVestingWallet ) external; // onlyOwner 22 | function setAccessManager( IAccessManager _accessManager ) external; // onlyOwner 23 | 24 | // Views 25 | function salt() external view returns (ISalt); 26 | function wbtc() external view returns (IERC20); 27 | function weth() external view returns (IERC20); 28 | function dai() external view returns (IERC20); 29 | function usds() external view returns (IUSDS); 30 | 31 | function managedTeamWallet() external view returns (IManagedWallet); 32 | function daoVestingWallet() external view returns (VestingWallet); 33 | function teamVestingWallet() external view returns (VestingWallet); 34 | function initialDistribution() external view returns (IInitialDistribution); 35 | 36 | function accessManager() external view returns (IAccessManager); 37 | function dao() external view returns (IDAO); 38 | function upkeep() external view returns (IUpkeep); 39 | function airdrop() external view returns (IAirdrop); 40 | 41 | function walletHasAccess( address wallet ) external view returns (bool); 42 | } 43 | -------------------------------------------------------------------------------- /src/interfaces/IManagedWallet.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IManagedWallet 6 | { 7 | function proposeWallets( address _proposedMainWallet, address _proposedConfirmationWallet ) external; 8 | function changeWallets() external; 9 | 10 | // Views 11 | function mainWallet() external view returns (address wallet); 12 | function confirmationWallet() external view returns (address wallet); 13 | function proposedMainWallet() external view returns (address wallet); 14 | function proposedConfirmationWallet() external view returns (address wallet); 15 | function activeTimelock() external view returns (uint256); 16 | } 17 | -------------------------------------------------------------------------------- /src/interfaces/ISalt.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; 5 | 6 | 7 | interface ISalt is IERC20 8 | { 9 | function burnTokensInContract() external; 10 | 11 | // Views 12 | function totalBurned() external view returns (uint256); 13 | } 14 | -------------------------------------------------------------------------------- /src/interfaces/IUpkeep.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IUpkeep 6 | { 7 | function performUpkeep() external; 8 | 9 | // Views 10 | function currentRewardsForCallingPerformUpkeep() external view returns (uint256); 11 | function lastUpkeepTimeEmissions() external view returns (uint256); 12 | function lastUpkeepTimeRewardsEmitters() external view returns (uint256); 13 | } 14 | -------------------------------------------------------------------------------- /src/launch/interfaces/IAirdrop.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IAirdrop 6 | { 7 | function authorizeWallet( address wallet ) external; 8 | function allowClaiming() external; 9 | function claimAirdrop() external; 10 | 11 | // Views 12 | function saltAmountForEachUser() external view returns (uint256); 13 | function claimingAllowed() external view returns (bool); 14 | function claimed(address wallet) external view returns (bool); 15 | 16 | function isAuthorized(address wallet) external view returns (bool); 17 | function numberAuthorized() external view returns (uint256); 18 | } 19 | -------------------------------------------------------------------------------- /src/launch/interfaces/IBootstrapBallot.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IBootstrapBallot 6 | { 7 | function vote( bool voteStartExchangeYes, bytes memory signature ) external; 8 | function finalizeBallot() external; 9 | 10 | // Views 11 | function completionTimestamp() external view returns (uint256); 12 | function hasVoted(address user) external view returns (bool); 13 | 14 | function ballotFinalized() external view returns (bool); 15 | 16 | function startExchangeYes() external view returns (uint256); 17 | function startExchangeNo() external view returns (uint256); 18 | } 19 | -------------------------------------------------------------------------------- /src/launch/interfaces/IInitialDistribution.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "./IBootstrapBallot.sol"; 5 | 6 | 7 | interface IInitialDistribution 8 | { 9 | function distributionApproved() external; 10 | 11 | // Views 12 | function bootstrapBallot() external view returns (IBootstrapBallot); 13 | } 14 | -------------------------------------------------------------------------------- /src/pools/interfaces/IPoolStats.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IPoolStats 6 | { 7 | // These are the indicies (in terms of a poolIDs location in the current whitelistedPoolIDs array) of pools involved in an arbitrage path 8 | struct ArbitrageIndicies 9 | { 10 | uint64 index1; 11 | uint64 index2; 12 | uint64 index3; 13 | } 14 | 15 | function clearProfitsForPools() external; 16 | function updateArbitrageIndicies() external; 17 | 18 | // Views 19 | function profitsForWhitelistedPools() external view returns (uint256[] memory _calculatedProfits); 20 | function arbitrageIndicies(bytes32 poolID) external view returns (ArbitrageIndicies memory); 21 | } 22 | 23 | -------------------------------------------------------------------------------- /src/pools/interfaces/IPools.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol"; 5 | import "../../stable/interfaces/ICollateralAndLiquidity.sol"; 6 | import "../../dao/interfaces/IDAO.sol"; 7 | import "./IPoolStats.sol"; 8 | 9 | 10 | interface IPools is IPoolStats 11 | { 12 | function startExchangeApproved() external; 13 | function setContracts( IDAO _dao, ICollateralAndLiquidity _collateralAndLiquidity ) external; // onlyOwner 14 | 15 | function addLiquidity( IERC20 tokenA, IERC20 tokenB, uint256 maxAmountA, uint256 maxAmountB, uint256 minLiquidityReceived, uint256 totalLiquidity ) external returns (uint256 addedAmountA, uint256 addedAmountB, uint256 addedLiquidity); 16 | function removeLiquidity( IERC20 tokenA, IERC20 tokenB, uint256 liquidityToRemove, uint256 minReclaimedA, uint256 minReclaimedB, uint256 totalLiquidity ) external returns (uint256 reclaimedA, uint256 reclaimedB); 17 | 18 | function deposit( IERC20 token, uint256 amount ) external; 19 | function withdraw( IERC20 token, uint256 amount ) external; 20 | function swap( IERC20 swapTokenIn, IERC20 swapTokenOut, uint256 swapAmountIn, uint256 minAmountOut, uint256 deadline ) external returns (uint256 swapAmountOut); 21 | function depositSwapWithdraw(IERC20 swapTokenIn, IERC20 swapTokenOut, uint256 swapAmountIn, uint256 minAmountOut, uint256 deadline ) external returns (uint256 swapAmountOut); 22 | function depositDoubleSwapWithdraw( IERC20 swapTokenIn, IERC20 swapTokenMiddle, IERC20 swapTokenOut, uint256 swapAmountIn, uint256 minAmountOut, uint256 deadline ) external returns (uint256 swapAmountOut); 23 | 24 | // Views 25 | function exchangeIsLive() external view returns (bool); 26 | function getPoolReserves(IERC20 tokenA, IERC20 tokenB) external view returns (uint256 reserveA, uint256 reserveB); 27 | function depositedUserBalance(address user, IERC20 token) external view returns (uint256); 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/pools/interfaces/IPoolsConfig.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; 5 | import "./IPools.sol"; 6 | 7 | 8 | interface IPoolsConfig 9 | { 10 | function whitelistPool( IPools pools, IERC20 tokenA, IERC20 tokenB ) external; // onlyOwner 11 | function unwhitelistPool( IPools pools, IERC20 tokenA, IERC20 tokenB ) external; // onlyOwner 12 | function changeMaximumWhitelistedPools(bool increase) external; // onlyOwner 13 | function changeMaximumInternalSwapPercentTimes1000(bool increase) external; // onlyOwner 14 | 15 | // Views 16 | function maximumWhitelistedPools() external view returns (uint256); 17 | function maximumInternalSwapPercentTimes1000() external view returns (uint256); 18 | 19 | function numberOfWhitelistedPools() external view returns (uint256); 20 | function isWhitelisted( bytes32 poolID ) external view returns (bool); 21 | function whitelistedPools() external view returns (bytes32[] calldata); 22 | function underlyingTokenPair( bytes32 poolID ) external view returns (IERC20 tokenA, IERC20 tokenB); 23 | 24 | // Returns true if the token has been whitelisted (meaning it has been pooled with either WBTC and WETH) 25 | function tokenHasBeenWhitelisted( IERC20 token, IERC20 wbtc, IERC20 weth ) external view returns (bool); 26 | } -------------------------------------------------------------------------------- /src/price_feed/CoreSaltyFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; 5 | import "../interfaces/IExchangeConfig.sol"; 6 | import "../pools/interfaces/IPools.sol"; 7 | import "./interfaces/IPriceFeed.sol"; 8 | import "../pools/PoolUtils.sol"; 9 | 10 | 11 | // Uses the Salty.IO pools to retrieve prices for BTC and ETH. 12 | // Prices are returned with 18 decimals. 13 | contract CoreSaltyFeed is IPriceFeed 14 | { 15 | IPools immutable public pools; 16 | 17 | IERC20 immutable public wbtc; 18 | IERC20 immutable public weth; 19 | IERC20 immutable public usds; 20 | 21 | 22 | constructor( IPools _pools, IExchangeConfig _exchangeConfig ) 23 | { 24 | pools = _pools; 25 | wbtc = _exchangeConfig.wbtc(); 26 | weth = _exchangeConfig.weth(); 27 | usds = _exchangeConfig.usds(); 28 | } 29 | 30 | 31 | // Returns zero for an invalid price 32 | function getPriceBTC() external view returns (uint256) 33 | { 34 | (uint256 reservesWBTC, uint256 reservesUSDS) = pools.getPoolReserves(wbtc, usds); 35 | 36 | if ( ( reservesWBTC < PoolUtils.DUST ) || ( reservesUSDS < PoolUtils.DUST ) ) 37 | return 0; 38 | 39 | // reservesWBTC has 8 decimals, keep the 18 decimals of reservesUSDS 40 | return ( reservesUSDS * 10**8 ) / reservesWBTC; 41 | } 42 | 43 | 44 | // Returns zero for an invalid price 45 | function getPriceETH() external view returns (uint256) 46 | { 47 | (uint256 reservesWETH, uint256 reservesUSDS) = pools.getPoolReserves(weth, usds); 48 | 49 | if ( ( reservesWETH < PoolUtils.DUST ) || ( reservesUSDS < PoolUtils.DUST ) ) 50 | return 0; 51 | 52 | return ( reservesUSDS * 10**18 ) / reservesWETH; 53 | } 54 | } -------------------------------------------------------------------------------- /src/price_feed/interfaces/IPriceAggregator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "./IPriceFeed.sol"; 5 | 6 | 7 | interface IPriceAggregator 8 | { 9 | function setInitialFeeds( IPriceFeed _priceFeed1, IPriceFeed _priceFeed2, IPriceFeed _priceFeed3 ) external; 10 | function setPriceFeed( uint256 priceFeedNum, IPriceFeed newPriceFeed ) external; // onlyOwner 11 | function changeMaximumPriceFeedPercentDifferenceTimes1000(bool increase) external; // onlyOwner 12 | function changePriceFeedModificationCooldown(bool increase) external; // onlyOwner 13 | 14 | // Views 15 | function maximumPriceFeedPercentDifferenceTimes1000() external view returns (uint256); 16 | function priceFeedModificationCooldown() external view returns (uint256); 17 | 18 | function priceFeed1() external view returns (IPriceFeed); 19 | function priceFeed2() external view returns (IPriceFeed); 20 | function priceFeed3() external view returns (IPriceFeed); 21 | function getPriceBTC() external view returns (uint256); 22 | function getPriceETH() external view returns (uint256); 23 | } 24 | -------------------------------------------------------------------------------- /src/price_feed/interfaces/IPriceFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IPriceFeed 6 | { 7 | // USD prices for BTC and ETH with 18 decimals 8 | function getPriceBTC() external view returns (uint256); 9 | function getPriceETH() external view returns (uint256); 10 | } 11 | -------------------------------------------------------------------------------- /src/price_feed/tests/ForcedPriceFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/access/Ownable.sol"; 5 | import "./IForcedPriceFeed.sol"; 6 | 7 | 8 | // For testing liquidation which requires that collteral has insufficient value to proceed 9 | contract ForcedPriceFeed is IForcedPriceFeed, Ownable 10 | { 11 | bool public revertNext; 12 | 13 | uint256 public forcedPriceBTCWith18Decimals; 14 | uint256 public forcedPriceETHWith18Decimals; 15 | 16 | 17 | constructor( uint256 _forcedPriceBTCWith18Decimals, uint256 _forcedPriceETHWith18Decimals ) 18 | { 19 | forcedPriceBTCWith18Decimals = _forcedPriceBTCWith18Decimals; 20 | forcedPriceETHWith18Decimals = _forcedPriceETHWith18Decimals; 21 | } 22 | 23 | 24 | function setBTCPrice( uint256 _forcedPriceBTCWith18Decimals ) public onlyOwner 25 | { 26 | forcedPriceBTCWith18Decimals = _forcedPriceBTCWith18Decimals; 27 | } 28 | 29 | 30 | function setETHPrice( uint256 _forcedPriceETHWith18Decimals ) public onlyOwner 31 | { 32 | forcedPriceETHWith18Decimals = _forcedPriceETHWith18Decimals; 33 | } 34 | 35 | 36 | function setRevertNext() public 37 | { 38 | revertNext = true; 39 | } 40 | 41 | 42 | function clearRevertNext() public 43 | { 44 | revertNext = false; 45 | } 46 | 47 | 48 | function getPriceBTC() external view returns (uint256) 49 | { 50 | require( !revertNext, "revertNext is true" ); 51 | 52 | return forcedPriceBTCWith18Decimals; 53 | } 54 | 55 | 56 | function getPriceETH() external view returns (uint256) 57 | { 58 | require( !revertNext, "revertNext is true" ); 59 | 60 | return forcedPriceETHWith18Decimals; 61 | } 62 | } -------------------------------------------------------------------------------- /src/price_feed/tests/IForcedPriceFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IForcedPriceFeed 6 | { 7 | function setRevertNext() external; 8 | function setBTCPrice( uint256 _forcedPriceBTCWith18Decimals ) external; 9 | function setETHPrice( uint256 _forcedPriceETHWith18Decimals ) external; 10 | function getPriceBTC() external view returns (uint256); 11 | function getPriceETH() external view returns (uint256); 12 | } 13 | -------------------------------------------------------------------------------- /src/price_feed/tests/PriceAggregatorGas.t.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../../dev/Deployment.sol"; 5 | import "../CoreChainlinkFeed.sol"; 6 | import "../CoreUniswapFeed.sol"; 7 | import "../PriceAggregator.sol"; 8 | import "../CoreSaltyFeed.sol"; 9 | 10 | contract TestPriceAggreagator is PriceAggregator, Deployment 11 | { 12 | constructor() 13 | { 14 | initializeContracts(); 15 | 16 | CoreChainlinkFeed _chainlinkFeed = new CoreChainlinkFeed( CHAINLINK_BTC_USD, CHAINLINK_ETH_USD ); 17 | CoreUniswapFeed _uniswapFeed = new CoreUniswapFeed( IERC20(_testBTC), IERC20(_testETH), IERC20(_testUSDC), UNISWAP_V3_BTC_ETH, UNISWAP_V3_USDC_ETH ); 18 | CoreSaltyFeed _saltyFeed = new CoreSaltyFeed( pools, exchangeConfig ); 19 | 20 | setInitialFeeds(_chainlinkFeed, _uniswapFeed, _saltyFeed); 21 | } 22 | 23 | 24 | // Test price feed gas 25 | function testPriceFeedGas() public view 26 | { 27 | uint256 gas0 = gasleft(); 28 | 29 | uint256 price1 = _getPriceBTC(priceFeed1); 30 | uint256 price2 = _getPriceBTC(priceFeed2); 31 | uint256 price3 = _getPriceBTC(priceFeed3); 32 | 33 | _aggregatePrices(price1, price2, price3); 34 | 35 | console.log( "PRICE FEED GAS: ", gas0 - gasleft() ); 36 | } 37 | } 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/price_feed/tests/TestChainlinkAggregator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/access/Ownable.sol"; 5 | 6 | 7 | contract TestChainlinkAggregator is Ownable 8 | { 9 | uint256 public forcedPriceWith18Decimals; 10 | bool public shouldFail = false; 11 | bool public shouldTimeout = false; 12 | 13 | 14 | constructor( uint256 _forcedPriceWith18Decimals ) 15 | { 16 | forcedPriceWith18Decimals = _forcedPriceWith18Decimals; 17 | } 18 | 19 | 20 | function setPrice( uint256 _forcedPriceWith18Decimals ) public onlyOwner 21 | { 22 | forcedPriceWith18Decimals = _forcedPriceWith18Decimals; 23 | } 24 | 25 | 26 | function setShouldFail() public onlyOwner 27 | { 28 | shouldFail = true; 29 | } 30 | 31 | 32 | function setShouldTimeout() public onlyOwner 33 | { 34 | shouldTimeout = true; 35 | } 36 | 37 | 38 | function latestRoundData() external view returns (uint80, int256, uint256, uint256, uint80) 39 | { 40 | require( ! shouldFail ); 41 | 42 | if ( shouldTimeout ) 43 | return (uint80(0), int256(forcedPriceWith18Decimals), uint256(0), block.timestamp - 61 minutes, uint80(0)); 44 | 45 | return (uint80(0), int256(forcedPriceWith18Decimals), uint256(0), block.timestamp - 59 minutes, uint80(0)); 46 | } 47 | } -------------------------------------------------------------------------------- /src/price_feed/tests/TestPriceAggregator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "forge-std/Test.sol"; 5 | import "../PriceAggregator.sol"; 6 | 7 | 8 | contract TestPriceAggregator is PriceAggregator 9 | { 10 | function absoluteDifference( uint256 x, uint256 y ) public pure returns (uint256) 11 | { 12 | return _absoluteDifference(x, y); 13 | } 14 | 15 | 16 | function aggregatePrices( uint256 price1, uint256 price2, uint256 price3 ) public view returns (uint256) 17 | { 18 | return _aggregatePrices(price1, price2, price3); 19 | } 20 | } -------------------------------------------------------------------------------- /src/price_feed/tests/TestUniswapFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "forge-std/Test.sol"; 5 | import "../../interfaces/IExchangeConfig.sol"; 6 | import "../CoreUniswapFeed.sol"; 7 | 8 | 9 | // Prices are returned with 18 decimals. 10 | contract TestUniswapFeed is CoreUniswapFeed 11 | { 12 | bool public revertNext = false; 13 | 14 | uint256 public forcedTWAP_WBTC_WETH; 15 | uint256 public forcedTWAP_WETH_USDC; 16 | 17 | 18 | constructor( IERC20 _wbtc, IERC20 _weth, IERC20 _usdc, address _UNISWAP_V3_WBTC_WETH, address _UNISWAP_V3_WETH_USDC ) 19 | CoreUniswapFeed( _wbtc, _weth, _usdc, _UNISWAP_V3_WBTC_WETH, _UNISWAP_V3_WETH_USDC ) 20 | { 21 | } 22 | 23 | 24 | function setRevertNext() public 25 | { 26 | revertNext = true; 27 | } 28 | 29 | 30 | function setTwapWBTC_WETH( uint256 twap ) public 31 | { 32 | forcedTWAP_WBTC_WETH = twap; 33 | } 34 | 35 | 36 | function setTwapWETH_USDC( uint256 twap ) public 37 | { 38 | forcedTWAP_WETH_USDC = twap; 39 | } 40 | 41 | 42 | // Wrap the _getUniswapTwapWei function in a public function that includes a try/catch. 43 | // Returns zero on any type of failure. 44 | function getUniswapTwapWei( IUniswapV3Pool pool, uint256 twapInterval ) public override view returns (uint256) 45 | { 46 | require( !revertNext, "revertNext is true" ); 47 | 48 | if ( pool == UNISWAP_V3_WBTC_WETH ) 49 | if ( forcedTWAP_WBTC_WETH != 0 ) 50 | return forcedTWAP_WBTC_WETH; 51 | 52 | if ( pool == UNISWAP_V3_WETH_USDC ) 53 | if ( forcedTWAP_WETH_USDC != 0 ) 54 | return forcedTWAP_WETH_USDC; 55 | 56 | return super.getUniswapTwapWei( pool, twapInterval ); 57 | } 58 | } -------------------------------------------------------------------------------- /src/rewards/interfaces/IEmissions.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IEmissions 6 | { 7 | function performUpkeep( uint256 timeSinceLastUpkeep ) external; 8 | } -------------------------------------------------------------------------------- /src/rewards/interfaces/IRewardsConfig.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IRewardsConfig 6 | { 7 | function changeRewardsEmitterDailyPercent(bool increase) external; // onlyOwner 8 | function changeEmissionsWeeklyPercent(bool increase) external; // onlyOwner 9 | function changeStakingRewardsPercent(bool increase) external; // onlyOwner 10 | function changePercentRewardsSaltUSDS(bool increase) external; // onlyOwner 11 | 12 | // Views 13 | function emissionsWeeklyPercentTimes1000() external view returns (uint256); 14 | function rewardsEmitterDailyPercentTimes1000() external view returns (uint256); 15 | function stakingRewardsPercent() external view returns (uint256); 16 | function percentRewardsSaltUSDS() external view returns (uint256); 17 | } -------------------------------------------------------------------------------- /src/rewards/interfaces/IRewardsEmitter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../../staking/interfaces/IStakingRewards.sol"; 5 | 6 | 7 | interface IRewardsEmitter 8 | { 9 | function addSALTRewards( AddedReward[] calldata addedRewards ) external; 10 | function performUpkeep( uint256 timeSinceLastUpkeep ) external; 11 | 12 | // Views 13 | function pendingRewardsForPools( bytes32[] calldata pools ) external view returns (uint256[] calldata); 14 | } 15 | -------------------------------------------------------------------------------- /src/rewards/interfaces/ISaltRewards.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "./IRewardsEmitter.sol"; 5 | 6 | 7 | interface ISaltRewards 8 | { 9 | function sendInitialSaltRewards( uint256 liquidityBootstrapAmount, bytes32[] calldata poolIDs ) external; 10 | function performUpkeep( bytes32[] calldata poolIDs, uint256[] calldata profitsForPools ) external; 11 | 12 | // Views 13 | function stakingRewardsEmitter() external view returns (IRewardsEmitter); 14 | function liquidityRewardsEmitter() external view returns (IRewardsEmitter); 15 | } -------------------------------------------------------------------------------- /src/rewards/tests/TestSaltRewards.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../SaltRewards.sol"; 5 | 6 | 7 | contract TestSaltRewards is SaltRewards 8 | { 9 | constructor( IRewardsEmitter _stakingRewardsEmitter, IRewardsEmitter _liquidityRewardsEmitter, IExchangeConfig _exchangeConfig, IRewardsConfig _rewardsConfig ) 10 | SaltRewards( _stakingRewardsEmitter, _liquidityRewardsEmitter, _exchangeConfig, _rewardsConfig ) 11 | { 12 | } 13 | 14 | 15 | 16 | // Send the pending SALT rewards to the stakingRewardsEmitter 17 | function sendStakingRewards(uint256 stakingRewardsAmount) public 18 | { 19 | _sendStakingRewards(stakingRewardsAmount); 20 | } 21 | 22 | 23 | // Transfer SALT rewards to the liquidityRewardsEmitter proportional to pool shares in generating recent arb profits. 24 | function sendLiquidityRewards( uint256 liquidityRewardsAmount, uint256 directSaltUSDSRewardsAmount, bytes32[] memory poolIDs, uint256[] memory profitsForPools ) public 25 | { 26 | uint256 totalProfits = 0; 27 | for( uint256 i = 0; i < poolIDs.length; i++ ) 28 | totalProfits += profitsForPools[i]; 29 | 30 | _sendLiquidityRewards( liquidityRewardsAmount, directSaltUSDSRewardsAmount, poolIDs, profitsForPools, totalProfits ); 31 | } 32 | 33 | 34 | function sendInitialLiquidityRewards( uint256 liquidityBootstrapAmount, bytes32[] memory poolIDs ) public 35 | { 36 | _sendInitialLiquidityRewards( liquidityBootstrapAmount, poolIDs ); 37 | } 38 | 39 | 40 | function sendInitialStakingRewards( uint256 stakingBootstrapAmount ) public 41 | { 42 | _sendInitialStakingRewards(stakingBootstrapAmount); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/root_tests/ITestUpkeep.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface ITestUpkeep 6 | { 7 | function step1() external; 8 | function step2( address receiver ) external; 9 | function step3() external; 10 | function step4() external; 11 | function step5() external; 12 | function step6() external; 13 | function step7() external; 14 | function step8() external; 15 | function step9() external; 16 | function step10() external; 17 | function step11() external; 18 | } 19 | -------------------------------------------------------------------------------- /src/root_tests/IUpkeepFlawed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IUpkeepFlawed 6 | { 7 | function performFlawedUpkeep() external; 8 | } 9 | -------------------------------------------------------------------------------- /src/root_tests/TestERC20.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; 5 | 6 | 7 | contract TestERC20 is ERC20 8 | { 9 | uint8 private _decimals; 10 | 11 | uint256 public INITIAL_SUPPLY; 12 | 13 | 14 | 15 | constructor( string memory name, uint256 __decimals ) 16 | ERC20( name, name ) 17 | { 18 | _decimals = uint8(__decimals); 19 | 20 | // 1 quadrillion initial supply 21 | INITIAL_SUPPLY = 1000 * 1000 * 1000000000 * 10 ** _decimals; 22 | _mint( msg.sender, INITIAL_SUPPLY ); 23 | } 24 | 25 | 26 | function decimals() public view override returns (uint8) 27 | { 28 | return _decimals; 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/root_tests/TestWETH.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/ERC20.sol"; 5 | 6 | 7 | contract TestWETH is ERC20 8 | { 9 | uint8 private _decimals; 10 | 11 | uint256 public INITIAL_SUPPLY; 12 | 13 | 14 | 15 | constructor() 16 | ERC20( "TestWETH", "WETH" ) 17 | { 18 | _decimals = uint8(18); 19 | 20 | // 1 quadrillion initial supply 21 | INITIAL_SUPPLY = 1000 * 1000 * 1000000000 * 10 ** _decimals; 22 | _mint( msg.sender, INITIAL_SUPPLY ); 23 | } 24 | 25 | 26 | function decimals() public view override returns (uint8) 27 | { 28 | return _decimals; 29 | } 30 | 31 | 32 | // To mimic WETH 33 | function deposit() public payable 34 | { 35 | _mint( msg.sender, msg.value ); 36 | } 37 | 38 | 39 | function withdraw(uint wad) public 40 | { 41 | require(balanceOf(msg.sender) >= wad); 42 | _burn( msg.sender, wad ); 43 | 44 | payable(msg.sender).transfer(wad); 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /src/stable/interfaces/ICollateralAndLiquidity.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../../staking/interfaces/ILiquidity.sol"; 5 | import "./ILiquidizer.sol"; 6 | 7 | 8 | interface ICollateralAndLiquidity is ILiquidity 9 | { 10 | function depositCollateralAndIncreaseShare( uint256 maxAmountWBTC, uint256 maxAmountWETH, uint256 minLiquidityReceived, uint256 deadline, bool useZapping ) external returns (uint256 addedAmountWBTC, uint256 addedAmountWETH, uint256 addedLiquidity); 11 | function withdrawCollateralAndClaim( uint256 collateralToWithdraw, uint256 minReclaimedWBTC, uint256 minReclaimedWETH, uint256 deadline ) external returns (uint256 reclaimedWBTC, uint256 reclaimedWETH); 12 | function borrowUSDS( uint256 amountBorrowed ) external; 13 | function repayUSDS( uint256 amountRepaid ) external; 14 | function liquidateUser( address wallet ) external; 15 | 16 | // Views 17 | function liquidizer() external view returns (ILiquidizer); 18 | function usdsBorrowedByUsers( address wallet ) external view returns (uint256); 19 | 20 | function maxWithdrawableCollateral( address wallet ) external view returns (uint256); 21 | function maxBorrowableUSDS( address wallet ) external view returns (uint256); 22 | function numberOfUsersWithBorrowedUSDS() external view returns (uint256); 23 | function canUserBeLiquidated( address wallet ) external view returns (bool); 24 | function findLiquidatableUsers( uint256 startIndex, uint256 endIndex ) external view returns (address[] calldata); 25 | function findLiquidatableUsers() external view returns (address[] calldata); 26 | 27 | function underlyingTokenValueInUSD( uint256 amountBTC, uint256 amountETH ) external view returns (uint256); 28 | function totalCollateralValueInUSD() external view returns (uint256); 29 | function userCollateralValueInUSD( address wallet ) external view returns (uint256); 30 | } 31 | -------------------------------------------------------------------------------- /src/stable/interfaces/ILiquidizer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../../interfaces/IExchangeConfig.sol"; 5 | import "../../pools/interfaces/IPools.sol"; 6 | import "./ICollateralAndLiquidity.sol"; 7 | 8 | 9 | interface ILiquidizer 10 | { 11 | function setContracts(ICollateralAndLiquidity _collateralAndLiquidity, IPools _pools, IDAO _dao) external; // onlyOwner 12 | function incrementBurnableUSDS( uint256 usdsToBurn ) external; 13 | function performUpkeep() external; 14 | 15 | // Views 16 | function usdsThatShouldBeBurned() external view returns (uint256 _usdsThatShouldBeBurned); 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/stable/interfaces/IStableConfig.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | interface IStableConfig 5 | { 6 | function changeRewardPercentForCallingLiquidation(bool increase) external; // onlyOwner 7 | function changeMaxRewardValueForCallingLiquidation(bool increase) external; // onlyOwner 8 | function changeMinimumCollateralValueForBorrowing(bool increase) external; // onlyOwner 9 | function changeInitialCollateralRatioPercent(bool increase) external; // onlyOwner 10 | function changeMinimumCollateralRatioPercent(bool increase) external; // onlyOwner 11 | function changePercentArbitrageProfitsForStablePOL(bool increase) external; // onlyOwner 12 | 13 | // Views 14 | function rewardPercentForCallingLiquidation() external view returns (uint256); 15 | function maxRewardValueForCallingLiquidation() external view returns (uint256); 16 | function minimumCollateralValueForBorrowing() external view returns (uint256); 17 | function initialCollateralRatioPercent() external view returns (uint256); 18 | function minimumCollateralRatioPercent() external view returns (uint256); 19 | function percentArbitrageProfitsForStablePOL() external view returns (uint256); 20 | } 21 | -------------------------------------------------------------------------------- /src/stable/interfaces/IUSDS.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; 5 | import "./ICollateralAndLiquidity.sol"; 6 | 7 | 8 | interface IUSDS is IERC20 9 | { 10 | function setCollateralAndLiquidity( ICollateralAndLiquidity _collateralAndLiquidity ) external; // onlyOwner 11 | function mintTo( address wallet, uint256 amount ) external; 12 | function burnTokensInContract() external; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/stable/tests/StableConfig.t.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "forge-std/Test.sol"; 5 | import "../StableConfig.sol"; 6 | import "../../price_feed/interfaces/IPriceFeed.sol"; 7 | 8 | 9 | contract TestStableConfig is Test 10 | { 11 | IPriceFeed public _forcedPriceFeed = IPriceFeed(address(0xDEE776893503EFB20e6fC7173E9c03911F28233E)); 12 | 13 | StableConfig public stableConfig; 14 | 15 | 16 | constructor() 17 | { 18 | stableConfig = new StableConfig(); 19 | } 20 | 21 | 22 | function testRemainingRatioAfterReward() public 23 | { 24 | stableConfig.changeMinimumCollateralRatioPercent( true ); // => 111% 25 | stableConfig.changeRewardPercentForCallingLiquidation( true ); // ==> 6% 26 | 27 | uint256 startingMinimumCollateralRatioPercent = stableConfig.minimumCollateralRatioPercent(); 28 | stableConfig.changeMinimumCollateralRatioPercent( false ); 29 | assertEq( stableConfig.minimumCollateralRatioPercent(), startingMinimumCollateralRatioPercent, "minimumCollateralRatioPercent shouldn't change due to 105 minimum buffer with reward percent" ); 30 | 31 | uint256 startingRewardPercentForCallingLiquidation = stableConfig.rewardPercentForCallingLiquidation(); 32 | stableConfig.changeRewardPercentForCallingLiquidation( true ); 33 | assertEq( stableConfig.rewardPercentForCallingLiquidation(), startingRewardPercentForCallingLiquidation, "rewardPercentForCallingLiquidation shouldn't change due to 105 minimum buffer with minimumCollateralRatioPercent" ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/staking/interfaces/ILiquidity.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol"; 5 | import "./IStakingRewards.sol"; 6 | 7 | 8 | interface ILiquidity is IStakingRewards 9 | { 10 | function depositLiquidityAndIncreaseShare( IERC20 tokenA, IERC20 tokenB, uint256 maxAmountA, uint256 maxAmountB, uint256 minLiquidityReceived, uint256 deadline, bool useZapping ) external returns (uint256 addedAmountA, uint256 addedAmountB, uint256 addedLiquidity); 11 | function withdrawLiquidityAndClaim( IERC20 tokenA, IERC20 tokenB, uint256 liquidityToWithdraw, uint256 minReclaimedA, uint256 minReclaimedB, uint256 deadline ) external returns (uint256 reclaimedA, uint256 reclaimedB); 12 | } 13 | -------------------------------------------------------------------------------- /src/staking/interfaces/IStaking.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "./IStakingRewards.sol"; 5 | 6 | 7 | // Enum representing the possible states of an unstake request: 8 | // NONE: The default state, indicating that no unstake request has been made. 9 | // PENDING: The state indicating that an unstake request has been made, but has not yet completed. 10 | // CANCELLED: The state indicating that a pending unstake request has been cancelled by the user. 11 | // CLAIMED: The state indicating that a pending unstake request has been completed and the user can claim their SALT tokens. 12 | enum UnstakeState { NONE, PENDING, CANCELLED, CLAIMED } 13 | 14 | struct Unstake 15 | { 16 | UnstakeState status; // see above 17 | 18 | address wallet; // the wallet of the user performing the unstake 19 | uint256 unstakedXSALT; // the amount of xSALT that was unstaked 20 | uint256 claimableSALT; // claimable SALT at completion time 21 | uint256 completionTime; // the timestamp when the unstake completes 22 | uint256 unstakeID; // the unstake ID 23 | } 24 | 25 | 26 | interface IStaking is IStakingRewards 27 | { 28 | function stakeSALT( uint256 amountToStake ) external; 29 | function unstake( uint256 amountUnstaked, uint256 numWeeks ) external returns (uint256 unstakeID); 30 | function cancelUnstake( uint256 unstakeID ) external; 31 | function recoverSALT( uint256 unstakeID ) external; 32 | function transferStakedSaltFromAirdropToUser(address wallet, uint256 amount) external; 33 | 34 | // Views 35 | function userXSalt( address wallet ) external view returns (uint256); 36 | function unstakesForUser( address wallet, uint256 start, uint256 end ) external view returns (Unstake[] calldata); 37 | function unstakesForUser( address wallet ) external view returns (Unstake[] calldata); 38 | function userUnstakeIDs( address user ) external view returns (uint256[] calldata); 39 | function unstakeByID(uint256 id) external view returns (Unstake calldata); 40 | function calculateUnstake( uint256 unstakedXSALT, uint256 numWeeks ) external view returns (uint256); 41 | } 42 | -------------------------------------------------------------------------------- /src/staking/interfaces/IStakingConfig.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | interface IStakingConfig 6 | { 7 | function changeMinUnstakeWeeks(bool increase) external; // onlyOwner 8 | function changeMaxUnstakeWeeks(bool increase) external; // onlyOwner 9 | function changeMinUnstakePercent(bool increase) external; // onlyOwner 10 | function changeModificationCooldown(bool increase) external; // onlyOwner 11 | 12 | // Views 13 | function minUnstakeWeeks() external view returns (uint256); 14 | function maxUnstakeWeeks() external view returns (uint256); 15 | function minUnstakePercent() external view returns (uint256); 16 | function modificationCooldown() external view returns (uint256); 17 | } -------------------------------------------------------------------------------- /src/staking/interfaces/IStakingRewards.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | 5 | struct AddedReward 6 | { 7 | bytes32 poolID; // The pool to add rewards to 8 | uint256 amountToAdd; // The amount of rewards (as SALT) to add 9 | } 10 | 11 | struct UserShareInfo 12 | { 13 | uint128 userShare; // A user's share for a given poolID 14 | uint128 virtualRewards; // The amount of rewards that were added to maintain proper rewards/share ratio - and will be deducted from a user's pending rewards. 15 | uint256 cooldownExpiration; // The timestamp when the user can modify their share 16 | } 17 | 18 | 19 | interface IStakingRewards 20 | { 21 | function claimAllRewards( bytes32[] calldata poolIDs ) external returns (uint256 rewardsAmount); 22 | function addSALTRewards( AddedReward[] calldata addedRewards ) external; 23 | 24 | // Views 25 | function totalShares(bytes32 poolID) external view returns (uint256); 26 | function totalSharesForPools( bytes32[] calldata poolIDs ) external view returns (uint256[] calldata shares); 27 | function totalRewardsForPools( bytes32[] calldata poolIDs ) external view returns (uint256[] calldata rewards); 28 | 29 | function userRewardForPool( address wallet, bytes32 poolID ) external view returns (uint256); 30 | function userShareForPool( address wallet, bytes32 poolID ) external view returns (uint256); 31 | function userVirtualRewardsForPool( address wallet, bytes32 poolID ) external view returns (uint256); 32 | 33 | function userRewardsForPools( address wallet, bytes32[] calldata poolIDs ) external view returns (uint256[] calldata rewards); 34 | function userShareForPools( address wallet, bytes32[] calldata poolIDs ) external view returns (uint256[] calldata shares); 35 | function userCooldowns( address wallet, bytes32[] calldata poolIDs ) external view returns (uint256[] calldata cooldowns); 36 | } 37 | -------------------------------------------------------------------------------- /src/staking/tests/TestStakingRewards.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: BUSL 1.1 2 | pragma solidity =0.8.22; 3 | 4 | import "../StakingRewards.sol"; 5 | 6 | 7 | // Used for testing to access the private increase and descrease user share functions 8 | contract TestStakingRewards is StakingRewards 9 | { 10 | constructor( IExchangeConfig _exchangeConfig, IPoolsConfig _poolsConfig, IStakingConfig _stakingConfig ) 11 | StakingRewards( _exchangeConfig, _poolsConfig, _stakingConfig ) 12 | { 13 | } 14 | 15 | 16 | function externalIncreaseUserShare(address user, bytes32 pool, uint256 amount, bool useCooldown) external { 17 | _increaseUserShare(user, pool, amount, useCooldown); 18 | } 19 | 20 | 21 | function externalDecreaseUserShare(address user, bytes32 pool, uint256 amount, bool useCooldown) external { 22 | _decreaseUserShare(user, pool, amount, useCooldown); 23 | } 24 | } --------------------------------------------------------------------------------