├── .env.example
├── .gitignore
├── .gitmodules
├── .prettierrc.json
├── README.md
├── bot-report.md
├── contracts
├── InstantMintTimeBasedRateLimiter.sol
├── Pricer.sol
├── Proxy.sol
├── RWAHub.sol
├── RWAHubOffChainRedemptions.sol
├── bridge
│ ├── DestinationBridge.sol
│ ├── MintRateLimiter.sol
│ └── SourceBridge.sol
├── external
│ ├── axelar
│ │ ├── AxelarExecutable.sol
│ │ └── StringAddressUtils.sol
│ ├── chainalysis
│ │ └── ISanctionsList.sol
│ ├── chainlink
│ │ └── AggregatorV3Interface.sol
│ └── openzeppelin
│ │ ├── contracts-upgradeable
│ │ ├── access
│ │ │ ├── AccessControlEnumerableUpgradeable.sol
│ │ │ ├── AccessControlUpgradeable.sol
│ │ │ ├── IAccessControlEnumerableUpgradeable.sol
│ │ │ └── IAccessControlUpgradeable.sol
│ │ ├── proxy
│ │ │ └── Initializable.sol
│ │ ├── security
│ │ │ └── PausableUpgradeable.sol
│ │ ├── token
│ │ │ ├── ERC20
│ │ │ │ ├── ERC20BurnableUpgradeable.sol
│ │ │ │ ├── ERC20PausableUpgradeable.sol
│ │ │ │ ├── ERC20PresetMinterPauserUpgradeable.sol
│ │ │ │ ├── ERC20Upgradeable.sol
│ │ │ │ ├── IERC20MetadataUpgradeable.sol
│ │ │ │ └── IERC20Upgradeable.sol
│ │ │ └── ERC721
│ │ │ │ ├── ERC721BurnableUpgradeable.sol
│ │ │ │ ├── ERC721EnumerableUpgradeable.sol
│ │ │ │ ├── ERC721PausableUpgradeable.sol
│ │ │ │ ├── ERC721PresetMinterPauserAutoIdUpgradeable.sol
│ │ │ │ ├── ERC721Upgradeable.sol
│ │ │ │ ├── IERC721EnumerableUpgradeable.sol
│ │ │ │ ├── IERC721MetadataUpgradeable.sol
│ │ │ │ ├── IERC721ReceiverUpgradeable.sol
│ │ │ │ └── IERC721Upgradeable.sol
│ │ └── utils
│ │ │ ├── AddressUpgradeable.sol
│ │ │ ├── ContextUpgradeable.sol
│ │ │ ├── CounterUpgradeable.sol
│ │ │ ├── ERC165Upgradeable.sol
│ │ │ ├── EnumerableSetUpgradeable.sol
│ │ │ ├── IERC165Upgradeable.sol
│ │ │ └── StringsUpgradeable.sol
│ │ └── contracts
│ │ ├── access
│ │ ├── AccessControl.sol
│ │ ├── AccessControlEnumerable.sol
│ │ ├── IAccessControl.sol
│ │ ├── IAccessControlEnumerable.sol
│ │ ├── Ownable.sol
│ │ └── Ownable2Step.sol
│ │ ├── proxy
│ │ ├── ERC1967Proxy.sol
│ │ ├── ERC1967Upgrade.sol
│ │ ├── IBeacon.sol
│ │ ├── Proxy.sol
│ │ ├── ProxyAdmin.sol
│ │ ├── TransparentUpgradeableProxy.sol
│ │ └── draft-IERC1822.sol
│ │ ├── security
│ │ ├── Pausable.sol
│ │ └── ReentrancyGuard.sol
│ │ ├── token
│ │ ├── ERC20.sol
│ │ ├── IERC20.sol
│ │ ├── IERC20Metadata.sol
│ │ └── SafeERC20.sol
│ │ └── utils
│ │ ├── Address.sol
│ │ ├── Context.sol
│ │ ├── Counters.sol
│ │ ├── ERC165.sol
│ │ ├── EnumerableSet.sol
│ │ ├── IERC165.sol
│ │ ├── StorageSlot.sol
│ │ ├── Strings.sol
│ │ └── cryptography
│ │ ├── ECDSA.sol
│ │ └── EIP712.sol
├── interfaces
│ ├── IAllowlist.sol
│ ├── IAllowlistClient.sol
│ ├── IAxelarExecutable.sol
│ ├── IAxelarGasService.sol
│ ├── IAxelarGateway.sol
│ ├── IBlocklist.sol
│ ├── IBlocklistClient.sol
│ ├── IMulticall.sol
│ ├── IOmmf.sol
│ ├── IPricer.sol
│ ├── IPricerReader.sol
│ ├── IRWAHub.sol
│ ├── IRWAHubInstantMints.sol
│ ├── IRWAHubNonStableInstantMint.sol
│ ├── IRWAHubOffChainRedemptions.sol
│ ├── IRWALike.sol
│ ├── IRWAOracle.sol
│ ├── IUSDY.sol
│ ├── IUSDYManager.sol
│ └── IWommf.sol
├── rwaOracles
│ ├── IRWADynamicOracle.sol
│ ├── IRWAOracle.sol
│ └── RWADynamicOracle.sol
├── sanctions
│ ├── ISanctionsListClient.sol
│ ├── SanctionsListClient.sol
│ └── SanctionsListClientUpgradeable.sol
└── usdy
│ ├── USDY.sol
│ ├── USDYFactory.sol
│ ├── USDYManager.sol
│ ├── allowlist
│ ├── AllowlistClient.sol
│ ├── AllowlistClientUpgradeable.sol
│ ├── AllowlistFactory.sol
│ ├── AllowlistProxy.sol
│ └── AllowlistUpgradeable.sol
│ ├── blocklist
│ ├── Blocklist.sol
│ ├── BlocklistClient.sol
│ └── BlocklistClientUpgradeable.sol
│ ├── rUSDY.sol
│ └── rUSDYFactory.sol
├── deploy
├── mainnet_constants.ts
└── usdy
│ └── local
│ ├── deploy_allowlist.ts
│ ├── deploy_blocklist.ts
│ ├── deploy_pricer.ts
│ ├── deploy_receiverBridge.ts
│ ├── deploy_sourceBridge.ts
│ ├── deploy_usdyDRO.ts
│ ├── deploy_usdyManager.ts
│ ├── deploy_usdy_factory.ts
│ └── deploy_usdyrebasing.ts
├── discord-export
├── Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html
├── Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files
│ ├── 035bc6d744b912109c172be636c97924-66C8B.png
│ ├── 0dd28fc82fcaf9a8a1442f82d74b1e5a-024A3.png
│ ├── 1-B2132.png
│ ├── 1080667809002037320-8957D.png
│ ├── 1083068685914214490-81D5F.gif
│ ├── 1083068770823721071-EE4F6.png
│ ├── 144e17cbf14eb2efd14bea40c63679ed-EA8CA.png
│ ├── 14ea78b80318f2bf28da987fc2be9912-F4E16.png
│ ├── 1c4a80121deeb5d2fdd1654a720538b4-2A197.png
│ ├── 1d7d4ad022d0fad9451ca889dee49b79-25555.png
│ ├── 1f31a-181DA.svg
│ ├── 1f389-5C738.svg
│ ├── 1f3c1-445DC.svg
│ ├── 1f3c6-621A1.svg
│ ├── 1f3fe-4366C.svg
│ ├── 1f43a-EB486.svg
│ ├── 1f440-6C64D.svg
│ ├── 1f446-9CC34.svg
│ ├── 1f44b-8A059.svg
│ ├── 1f44d-1f3fb-ED2AA.svg
│ ├── 1f44d-1f3fe-78CB5.svg
│ ├── 1f44d-27259.svg
│ ├── 1f44f-1f3fc-68A78.svg
│ ├── 1f44f-1f3fd-EC946.svg
│ ├── 1f49c-71A75.svg
│ ├── 1f4ab-917C8.svg
│ ├── 1f4af-4CFF5.svg
│ ├── 1f4b8-E3468.svg
│ ├── 1f4c6-44E30.svg
│ ├── 1f4dc-AC641.svg
│ ├── 1f50d-195C0.svg
│ ├── 1f525-8FE4F.svg
│ ├── 1f602-168C5.svg
│ ├── 1f604-BF863.svg
│ ├── 1f605-42B43.svg
│ ├── 1f607-0FB5B.svg
│ ├── 1f609-9EC67.svg
│ ├── 1f610-B3309.svg
│ ├── 1f622-BDD22.svg
│ ├── 1f626-91074.svg
│ ├── 1f633-5703D.svg
│ ├── 1f635-5120A.svg
│ ├── 1f642-83E8A.svg
│ ├── 1f643-F8BDC.svg
│ ├── 1f644-329A4.svg
│ ├── 1f64f-1f3fb-984F1.svg
│ ├── 1f64f-22B8D.svg
│ ├── 1f680-A35CE.svg
│ ├── 1f6a8-A8AB3.svg
│ ├── 1f911-F346C.svg
│ ├── 1f914-15707.svg
│ ├── 1f915-D8E32.svg
│ ├── 1f916-AD810.svg
│ ├── 1f91d-5A0F2.svg
│ ├── 1f91e-2A114.svg
│ ├── 1f923-5854E.svg
│ ├── 1f926-1f3fd-200d-2642-fe0f-00C2E.svg
│ ├── 1f926-E188B.svg
│ ├── 1f929-12865.svg
│ ├── 1f92b-DABDE.svg
│ ├── 1f972-F415D.svg
│ ├── 1f9d0-3E117.svg
│ ├── 1f9d1-5BC80.svg
│ ├── 1fae1-B19DE.svg
│ ├── 1fae3-64122.svg
│ ├── 2-ADBB4.png
│ ├── 203c-3876B.svg
│ ├── 2696-15F4A.svg
│ ├── 26ffd9db9044f450b5db4361d4e6ddf9-207D4.png
│ ├── 2705-0589F.svg
│ ├── 2764-A3D25.svg
│ ├── 2a9faff195fe333526cfe6ae6fce1420-49B98.png
│ ├── 2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png
│ ├── 2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png
│ ├── 3-FB033.png
│ ├── 366b7bd30566c2cb7cfbe6ce4a9cb61e-62DA9.png
│ ├── 4-4551A.png
│ ├── 402b68164a51455e395a06ad04fc04b5-D7A38.png
│ ├── 40faf496db7b4bbcab37bc04b134567d-EFC50.png
│ ├── 43d2ed53dfa2a29f5aa26a327c03efda-A80D9.png
│ ├── 472e8696c1d575b51208a8571994c6bf-B0333.png
│ ├── 48855-124DD
│ ├── 48a9a9fe43e4faa98d5a904b32dc059c-210A2.png
│ ├── 4c405c8d602d7b3489d628bf20bfb843-9DFC8.png
│ ├── 5-E9BDB.png
│ ├── 543748db4b87f639129734824cf72301-433AE.png
│ ├── 55afac51a32db1ff015fd3a7d901e67a-A5862.png
│ ├── 55b9ac870fd4a1b4fc5a8c0550c27aa4-D1820.png
│ ├── 593f36e88b1657d978d620f5152eca82-52AEA.png
│ ├── 599667a9bd34d1211af25019e6da7fa4-6667B.png
│ ├── 5b71d15a9bcde45fd5520e3fb580eb53-E1A50.png
│ ├── 5d084bf7a4698ae3113c164cdd53ccbe-F4903.png
│ ├── 5e3fb61df91ed29c573265a690af4600-E824E.png
│ ├── 6025a7083a6d722dcbe6f458733cc1c1-DAFB7.png
│ ├── 6094e48ab77eb87fae4e3348c0d872b4-34FEF.png
│ ├── 641ea524f5de8dcf2fc726fa3ef176b9-E98DB.png
│ ├── 6519fe644ecf954cfdf81ad4c9fbaad9-B43F2.png
│ ├── 6738f0f683face7b5e6d5289a3fbef10-57324.png
│ ├── 674bc4b552acb3940dbf5ce93b4d950e-93677.png
│ ├── 67594ee4b4d1fc03bca468327a0d145b-BD76A.png
│ ├── 6a2cca271eb60a7b0247f2f558898ca6-E5800.png
│ ├── 6ad4ef2f519afddce2d78021aa7dd099-B55F0.png
│ ├── 6ed42d9e748568dc846549b81266418b-5A740.png
│ ├── 701300a5bdd3bf5640bd1370251533e2-0DC47.png
│ ├── 719c80747e70afb73ebb8268ac33f8a1-A5572.png
│ ├── 76aebd00517517684d8f213aaaa5b8c8-2EBFA.png
│ ├── 785c0b7123c292fe05d43e8dbf0d7044-B46B9.png
│ ├── 851893827027075142-F23DF.png
│ ├── 851893827089727568-5FD38.png
│ ├── 851893827315826708-F59C0.png
│ ├── 851893828280909886-FBF42.png
│ ├── 85e5270363b15970d662250fdf09afe7-43E64.png
│ ├── 8627bef0c0656a500cc0ddf3110a1eb6-05D99.png
│ ├── 877575988496715777-7C3BA.png
│ ├── 8aae0b753d870f000d6ebe243e741bac-B9A1F.png
│ ├── 910676187288846397-518CD.png
│ ├── 9354952ae06755bad04887d120f97a21-0F45C.png
│ ├── 94fcb7838a04ec855fb2853565f07b3c-02B6F.png
│ ├── 970d2e2f00cd7ef2134a1a3f21326349-404EA.png
│ ├── 977133670429261884-CA8EA.png
│ ├── 9b48fc63832ff892d253268456fa7c48-B96A3.png
│ ├── 9bf2181404e658cab4039c07df56213f-E3E89.png
│ ├── IMG_6639-0138C.png
│ ├── Screenshot_2023-09-03_at_02.05.24-AE0FF.png
│ ├── Screenshot_2023-09-07_at_9.05.44_PM-2A6F5.png
│ ├── Spider_Man_meme-54021.jpg
│ ├── a476320e0ef8160f4704597ba8e9b4b8-ECB13.png
│ ├── a6343b73d7602db7cfed31d5c33e2765-E1A7E.png
│ ├── a_6a2c603150e3344ef5e3e925d035bc97-8E140.gif
│ ├── aa24291fb1227c5734330daec1d79595-C9CFC.png
│ ├── ac37f50421d713952c5567868c0ce8fc-83194.png
│ ├── ae1b465d85239ce06424fdef03fbb9a4-9DE53.png
│ ├── again-do-it-faster-2ACBB.mp4
│ ├── b0fa46fcf237f5497b71eea9d38eeeeb-2A6D7.png
│ ├── b4fead77f737aa7840a25e1cd39eb062-CEDEC.png
│ ├── bb343372d44b28557a1291ab7f03b53d-CD490.png
│ ├── bb9f76664711c9b5009e7a6add580b29-7CFF5.png
│ ├── bc384b88-7513-430f-aaf0-012648e912af-5A909
│ ├── bea7207300b3d3fa79c0f645dda7a76c-46FEB.png
│ ├── bean-mr-3F367.mp4
│ ├── bored-bore-E8E1E.mp4
│ ├── c4-og-banner-6764C.png
│ ├── c4-og-banner-7DE3A.png
│ ├── c4fbf35c3e69a04ebc3a8a32a0bd3514-A8D31.png
│ ├── c6b85a4a6ca07ab15a30a24f570be5b8-F9476.png
│ ├── d28fcb32fb4a0872e0cbaf200d440c26-CFD73.png
│ ├── d352b5d64239648acbeb7b6f310df0b8-E875A.png
│ ├── d5d4ed583f2e7ec08c567b2b90bb1ee3-AAEEE.png
│ ├── d642f18d72ce83a77898d3e8c0f2191f-5911C.png
│ ├── d85cc85f5ae1a41d5af8e007f9a8b79e-001E5.png
│ ├── d9fa0ae50d731854d342f81d679964af-D6B3D.png
│ ├── dance-moms-stressed-15889.mp4
│ ├── dance-monkey-dancing-A36B5.mp4
│ ├── deep-sigh-albert-wesker-2EB93.mp4
│ ├── e0f9fe1af6a871c47188e3ba9b1851fa-2682D.png
│ ├── e9472a11f41d425badda92e53fc91864-F560D.png
│ ├── ebf4c0b23a574c269394032e94f059e0-D342D.png
│ ├── ee6c31750f46b7cd080ab8b84efae1c2-9E926.png
│ ├── etherscan-logo-circle-A29B1.jpg
│ ├── fd032d1c27ba593b4fbe6be4c074663d-78A1D.png
│ ├── fd8d69ec1289ed3faab1522d8912d65b-3E91A.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
│ ├── im-on-my-way-gordon-oliver-5E998.mp4
│ ├── im-waiting-daffy-duck-33B86.mp4
│ ├── image-0187A.png
│ ├── image-1C619.png
│ ├── image-2CC20.png
│ ├── image-57F3D.png
│ ├── image-596BC.png
│ ├── image-65488.png
│ ├── image-6E3FB.png
│ ├── image-88D47.png
│ ├── image-AE99B.png
│ ├── image-DE17C.png
│ ├── image-EA95A.png
│ ├── its-real-and-its-coming-kate-dibiasky-B6474.mov
│ ├── itscoming-elf-D4437.mp4
│ ├── lets-wait-grady-smith-9964F.mp4
│ ├── lottie.min-99657.js
│ ├── love-languages-4DD7E.mp4
│ ├── me-waiting-for-my-friends-to-get-online-7FE29.mp4
│ ├── meonly-41FC4.mp4
│ ├── nervous-glance-53A80.mp4
│ ├── nervous-lmao-B1AAF.mp4
│ ├── og_image-46462.png
│ ├── ondo-wordmark-hero-card-44A2F.png
│ ├── platypus-6B5F6.mp4
│ ├── private-skipper-DDE90.mp4
│ ├── solarized-dark.min-BA98F.css
│ ├── the-office-pam-beesly-B8BFE.mp4
│ ├── the-penguins-of-madagascar-madagascar-81BB2.mp4
│ ├── thor-ragnarok-mouth-shut-502ED.mp4
│ ├── waiting-still-6D179.mp4
│ ├── waiting-titanic-684B8.mp4
│ ├── waiting-wait-cd-dojo-D5E4E.mp4
│ └── waiting-waiting-patiently-3794C.mp4
├── Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt
└── Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files
│ ├── 48855-124DD
│ ├── IMG_6639-0138C.png
│ ├── Screenshot_2023-09-03_at_02.05.24-AE0FF.png
│ ├── Screenshot_2023-09-07_at_9.05.44_PM-2A6F5.png
│ ├── Spider_Man_meme-54021.jpg
│ ├── again-do-it-faster-59A6F.png
│ ├── bc384b88-7513-430f-aaf0-012648e912af-5A909
│ ├── bean-mr-93626.png
│ ├── bored-bore-2A73A.png
│ ├── c4-og-banner-6764C.png
│ ├── c4-og-banner-7DE3A.png
│ ├── dance-moms-stressed-EF88F.png
│ ├── dance-monkey-dancing-73408.png
│ ├── deep-sigh-albert-wesker-F11BF.png
│ ├── etherscan-logo-circle-A29B1.jpg
│ ├── im-on-my-way-gordon-oliver-A0882.png
│ ├── im-waiting-daffy-duck-CDF9B.png
│ ├── image-0187A.png
│ ├── image-1C619.png
│ ├── image-2CC20.png
│ ├── image-57F3D.png
│ ├── image-596BC.png
│ ├── image-65488.png
│ ├── image-6E3FB.png
│ ├── image-88D47.png
│ ├── image-AE99B.png
│ ├── image-DE17C.png
│ ├── image-EA95A.png
│ ├── its-real-and-its-coming-kate-dibiasky-B6474.mov
│ ├── itscoming-elf-AA964.png
│ ├── lets-wait-grady-smith-946E8.png
│ ├── love-languages-937DE.png
│ ├── me-waiting-for-my-friends-to-get-online-3049B.png
│ ├── meonly-48A42.png
│ ├── nervous-glance-E8227.png
│ ├── nervous-lmao-2E280.png
│ ├── og_image-46462.png
│ ├── ondo-wordmark-hero-card-44A2F.png
│ ├── platypus-A835B.png
│ ├── private-skipper-B8224.png
│ ├── the-office-pam-beesly-893FC.png
│ ├── the-penguins-of-madagascar-madagascar-8262A.png
│ ├── thor-ragnarok-mouth-shut-B2015.png
│ ├── waiting-still-567AA.png
│ ├── waiting-titanic-8E949.png
│ ├── waiting-wait-cd-dojo-24454.png
│ └── waiting-waiting-patiently-264C9.png
├── forge-tests
├── BaseTestRunner.sol
├── MinimalTestRunner.sol
├── USDY_BasicDeployment.sol
├── bridges
│ ├── DestinationBridge.t.sol
│ └── SourceBridge.t.sol
├── helpers
│ ├── Constants.sol
│ ├── DSTestPlus.sol
│ ├── DeltaCheckHarness.sol
│ ├── MockChainlinkPriceOracle.sol
│ ├── MockRWAOracle.sol
│ ├── MockSanctionsOracle.sol
│ └── events
│ │ ├── DestinationBridgeEvents.sol
│ │ ├── KYCRegistryClientEvents.sol
│ │ ├── OMMFEvents.sol
│ │ ├── OMMFManagerEvents.sol
│ │ ├── RWAHubEvents.sol
│ │ ├── RWAHubInstantMintEvents.sol
│ │ ├── RWAHubNonStableInstantMintEvents.sol
│ │ ├── RWAHubOffChainRedemptionsEvents.sol
│ │ ├── SourceBridgeEvents.sol
│ │ └── USDYManagerEvents.sol
├── postDeploymentConfig
│ ├── prod_constants.t.sol
│ └── usdy_config.t.sol
├── rusdy
│ ├── rUSDY_dynamic.t.sol
│ ├── rUSDY_fuzz.t.sol
│ └── rUSDY_harness.t.sol
├── rwaHub
│ ├── Minting.t.sol
│ ├── OffChainRedemption.t.sol
│ ├── Pricer.t.sol
│ ├── Redemption.t.sol
│ └── Setters.t.sol
├── rwaOracles
│ └── RWADynamicOracle.t.sol
└── usdy
│ ├── USDY.t.sol
│ ├── USDYManager.t.sol
│ └── allowlist
│ ├── AllowlistUpgradeable.t.sol
│ └── AllowlistUpgradeable_BasicDeployment.sol
├── foundry.toml
├── hardhat.config.ts
├── package.json
├── screenshot.png
└── yarn.lock
/.env.example:
--------------------------------------------------------------------------------
1 | MAINNET_RPC_URL= https://eth-mainnet.alchemyapi.io/v2/...
2 | FORK_FROM_BLOCK_NUMBER_MAINNET=16426621
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | allFiredEvents
2 | artifactsforge
3 | cache
4 | .build-temp
5 | build
6 | build_
7 | node_modules/*
8 | .env
9 | .certora*
10 | certora_*
11 | coverage/
12 | coverage.json
13 | coverageEnv/
14 | emv-*/
15 | formulas/
16 | networks/test.json
17 | networks/test-abi.json
18 | networks/coverage.json
19 | networks/coverage-abi.json
20 | networks/development.json
21 | networks/development-abi.json
22 | networks/coverage-contracts/*
23 | networks/test-contracts/*
24 | networks/*-contracts.json
25 | networks/*-history
26 | networks/*-settings.json
27 | outputs/
28 | Reports/
29 | scTopics
30 | *.DS_Store
31 | test-results.xml
32 | .tsbuilt
33 | yarn-error.log
34 | scenario/build/webpack.js
35 | .scencache
36 | .solcache
37 | .solcachecov
38 | scenario/.tscache
39 | script/certora
40 | tests/scenarios/
41 | tests/Scenarios/
42 | junit.xml
43 | .build
44 | .last_confs
45 | .saddle_history
46 | node_modules_tmp
47 | .idea
48 | artifacts/
49 | artifactsforge
50 | cache/
51 | typechain/
52 | artifactsforge
53 | deployments/
54 | typechain-types/
55 | corpus
56 | crytic-export
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "lib/forge-std"]
2 | path = lib/forge-std
3 | url = https://github.com/foundry-rs/forge-std
4 | branch = v1.5.3
5 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 2,
3 | "printWidth": 80,
4 | "overrides": [
5 | {
6 | "files": "*.sol",
7 | "options": {
8 | "printWidth": 80,
9 | "tabWidth": 2,
10 | "useTabs": false,
11 | "singleQuote": false,
12 | "bracketSpacing": false
13 | }
14 | }
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/contracts/Proxy.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | import "contracts/external/openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol";
19 |
20 | contract TokenProxy is TransparentUpgradeableProxy {
21 | constructor(
22 | address _logic,
23 | address _admin,
24 | bytes memory _data
25 | ) TransparentUpgradeableProxy(_logic, _admin, _data) {}
26 | }
27 |
--------------------------------------------------------------------------------
/contracts/external/axelar/StringAddressUtils.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.0;
4 |
5 | library StringToAddress {
6 | error InvalidAddressString();
7 |
8 | function toAddress(
9 | string memory addressString
10 | ) internal pure returns (address) {
11 | bytes memory stringBytes = bytes(addressString);
12 | uint160 addressNumber = 0;
13 | uint8 stringByte;
14 |
15 | if (
16 | stringBytes.length != 42 || stringBytes[0] != "0" || stringBytes[1] != "x"
17 | ) revert InvalidAddressString();
18 |
19 | for (uint256 i = 2; i < 42; ++i) {
20 | stringByte = uint8(stringBytes[i]);
21 |
22 | if ((stringByte >= 97) && (stringByte <= 102)) stringByte -= 87;
23 | else if ((stringByte >= 65) && (stringByte <= 70)) stringByte -= 55;
24 | else if ((stringByte >= 48) && (stringByte <= 57)) stringByte -= 48;
25 | else revert InvalidAddressString();
26 |
27 | addressNumber |= uint160(uint256(stringByte) << ((41 - i) << 2));
28 | }
29 | return address(addressNumber);
30 | }
31 | }
32 |
33 | library AddressToString {
34 | function toString(address addr) internal pure returns (string memory) {
35 | bytes memory addressBytes = abi.encodePacked(addr);
36 | uint256 length = addressBytes.length;
37 | bytes memory characters = "0123456789abcdef";
38 | bytes memory stringBytes = new bytes(2 + addressBytes.length * 2);
39 |
40 | stringBytes[0] = "0";
41 | stringBytes[1] = "x";
42 |
43 | for (uint256 i; i < length; ++i) {
44 | stringBytes[2 + i * 2] = characters[uint8(addressBytes[i] >> 4)];
45 | stringBytes[3 + i * 2] = characters[uint8(addressBytes[i] & 0x0f)];
46 | }
47 | return string(stringBytes);
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/contracts/external/chainalysis/ISanctionsList.sol:
--------------------------------------------------------------------------------
1 | /// SPDX-License-Identifier: UNLICENSED
2 | pragma solidity 0.8.16;
3 |
4 | interface ISanctionsList {
5 | function isSanctioned(address addr) external view returns (bool);
6 | }
7 |
--------------------------------------------------------------------------------
/contracts/external/chainlink/AggregatorV3Interface.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | pragma solidity 0.8.16;
3 |
4 | interface AggregatorV3Interface {
5 | function decimals() external view returns (uint8);
6 |
7 | function description() external view returns (string memory);
8 |
9 | function version() external view returns (uint256);
10 |
11 | function getRoundData(
12 | uint80 _roundId
13 | )
14 | external
15 | view
16 | returns (
17 | uint80 roundId,
18 | int256 answer,
19 | uint256 startedAt,
20 | uint256 updatedAt,
21 | uint80 answeredInRound
22 | );
23 |
24 | function latestRoundData()
25 | external
26 | view
27 | returns (
28 | uint80 roundId,
29 | int256 answer,
30 | uint256 startedAt,
31 | uint256 updatedAt,
32 | uint80 answeredInRound
33 | );
34 | }
35 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/access/IAccessControlEnumerableUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "./IAccessControlUpgradeable.sol";
7 |
8 | /**
9 | * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.
10 | */
11 | interface IAccessControlEnumerableUpgradeable is IAccessControlUpgradeable {
12 | /**
13 | * @dev Returns one of the accounts that have `role`. `index` must be a
14 | * value between 0 and {getRoleMemberCount}, non-inclusive.
15 | *
16 | * Role bearers are not sorted in any particular way, and their ordering may
17 | * change at any point.
18 | *
19 | * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure
20 | * you perform all queries on the same block. See the following
21 | * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]
22 | * for more information.
23 | */
24 | function getRoleMember(bytes32 role, uint256 index)
25 | external
26 | view
27 | returns (address);
28 |
29 | /**
30 | * @dev Returns the number of accounts that have `role`. Can be used
31 | * together with {getRoleMember} to enumerate all bearers of a role.
32 | */
33 | function getRoleMemberCount(bytes32 role) external view returns (uint256);
34 | }
35 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC20/ERC20PausableUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/ERC20Pausable.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
7 | import "contracts/external/openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
8 | import "contracts/external/openzeppelin/contracts-upgradeable/proxy/Initializable.sol";
9 |
10 | /**
11 | * @dev ERC20 token with pausable token transfers, minting and burning.
12 | *
13 | * Useful for scenarios such as preventing trades until the end of an evaluation
14 | * period, or having an emergency switch for freezing all token transfers in the
15 | * event of a large bug.
16 | */
17 | abstract contract ERC20PausableUpgradeable is
18 | Initializable,
19 | ERC20Upgradeable,
20 | PausableUpgradeable
21 | {
22 | function __ERC20Pausable_init() internal onlyInitializing {
23 | __Pausable_init_unchained();
24 | }
25 |
26 | function __ERC20Pausable_init_unchained() internal onlyInitializing {}
27 |
28 | /**
29 | * @dev See {ERC20-_beforeTokenTransfer}.
30 | *
31 | * Requirements:
32 | *
33 | * - the contract must not be paused.
34 | */
35 | function _beforeTokenTransfer(
36 | address from,
37 | address to,
38 | uint256 amount
39 | ) internal virtual override {
40 | super._beforeTokenTransfer(from, to, amount);
41 |
42 | require(!paused(), "ERC20Pausable: token transfer while paused");
43 | }
44 |
45 | /**
46 | * @dev This empty reserved space is put in place to allow future versions to add new
47 | * variables without shifting down storage in the inheritance chain.
48 | * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
49 | */
50 | uint256[50] private __gap;
51 | }
52 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC20/IERC20MetadataUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
7 |
8 | /**
9 | * @dev Interface for the optional metadata functions from the ERC20 standard.
10 | *
11 | * _Available since v4.1._
12 | */
13 | interface IERC20MetadataUpgradeable is IERC20Upgradeable {
14 | /**
15 | * @dev Returns the name of the token.
16 | */
17 | function name() external view returns (string memory);
18 |
19 | /**
20 | * @dev Returns the symbol of the token.
21 | */
22 | function symbol() external view returns (string memory);
23 |
24 | /**
25 | * @dev Returns the decimals places of the token.
26 | */
27 | function decimals() external view returns (uint8);
28 | }
29 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/ERC721BurnableUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/extensions/ERC721Burnable.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";
7 | import "contracts/external/openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
8 | import "contracts/external/openzeppelin/contracts-upgradeable/proxy/Initializable.sol";
9 |
10 | /**
11 | * @title ERC721 Burnable Token
12 | * @dev ERC721 Token that can be burned (destroyed).
13 | */
14 | abstract contract ERC721BurnableUpgradeable is
15 | Initializable,
16 | ContextUpgradeable,
17 | ERC721Upgradeable
18 | {
19 | function __ERC721Burnable_init() internal onlyInitializing {}
20 |
21 | function __ERC721Burnable_init_unchained() internal onlyInitializing {}
22 |
23 | /**
24 | * @dev Burns `tokenId`. See {ERC721-_burn}.
25 | *
26 | * Requirements:
27 | *
28 | * - The caller must own `tokenId` or be an approved operator.
29 | */
30 | function burn(uint256 tokenId) public virtual {
31 | //solhint-disable-next-line max-line-length
32 | require(
33 | _isApprovedOrOwner(_msgSender(), tokenId),
34 | "ERC721: caller is not token owner nor approved"
35 | );
36 | _burn(tokenId);
37 | }
38 |
39 | /**
40 | * @dev This empty reserved space is put in place to allow future versions to add new
41 | * variables without shifting down storage in the inheritance chain.
42 | * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
43 | */
44 | uint256[50] private __gap;
45 | }
46 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/ERC721PausableUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721Pausable.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";
7 | import "contracts/external/openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
8 | import "contracts/external/openzeppelin/contracts-upgradeable/proxy/Initializable.sol";
9 |
10 | /**
11 | * @dev ERC721 token with pausable token transfers, minting and burning.
12 | *
13 | * Useful for scenarios such as preventing trades until the end of an evaluation
14 | * period, or having an emergency switch for freezing all token transfers in the
15 | * event of a large bug.
16 | */
17 | abstract contract ERC721PausableUpgradeable is
18 | Initializable,
19 | ERC721Upgradeable,
20 | PausableUpgradeable
21 | {
22 | function __ERC721Pausable_init() internal onlyInitializing {
23 | __Pausable_init_unchained();
24 | }
25 |
26 | function __ERC721Pausable_init_unchained() internal onlyInitializing {}
27 |
28 | /**
29 | * @dev See {ERC721-_beforeTokenTransfer}.
30 | *
31 | * Requirements:
32 | *
33 | * - the contract must not be paused.
34 | */
35 | function _beforeTokenTransfer(
36 | address from,
37 | address to,
38 | uint256 tokenId
39 | ) internal virtual override {
40 | super._beforeTokenTransfer(from, to, tokenId);
41 |
42 | require(!paused(), "ERC721Pausable: token transfer while paused");
43 | }
44 |
45 | /**
46 | * @dev This empty reserved space is put in place to allow future versions to add new
47 | * variables without shifting down storage in the inheritance chain.
48 | * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
49 | */
50 | uint256[50] private __gap;
51 | }
52 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/IERC721EnumerableUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol";
7 |
8 | /**
9 | * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
10 | * @dev See https://eips.ethereum.org/EIPS/eip-721
11 | */
12 | interface IERC721EnumerableUpgradeable is IERC721Upgradeable {
13 | /**
14 | * @dev Returns the total amount of tokens stored by the contract.
15 | */
16 | function totalSupply() external view returns (uint256);
17 |
18 | /**
19 | * @dev Returns a token ID owned by `owner` at a given `index` of its token list.
20 | * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.
21 | */
22 | function tokenOfOwnerByIndex(address owner, uint256 index)
23 | external
24 | view
25 | returns (uint256);
26 |
27 | /**
28 | * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.
29 | * Use along with {totalSupply} to enumerate all tokens.
30 | */
31 | function tokenByIndex(uint256 index) external view returns (uint256);
32 | }
33 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/IERC721MetadataUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol";
7 |
8 | /**
9 | * @title ERC-721 Non-Fungible Token Standard, optional metadata extension
10 | * @dev See https://eips.ethereum.org/EIPS/eip-721
11 | */
12 | interface IERC721MetadataUpgradeable is IERC721Upgradeable {
13 | /**
14 | * @dev Returns the token collection name.
15 | */
16 | function name() external view returns (string memory);
17 |
18 | /**
19 | * @dev Returns the token collection symbol.
20 | */
21 | function symbol() external view returns (string memory);
22 |
23 | /**
24 | * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
25 | */
26 | function tokenURI(uint256 tokenId) external view returns (string memory);
27 | }
28 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @title ERC721 token receiver interface
8 | * @dev Interface for any contract that wants to support safeTransfers
9 | * from ERC721 asset contracts.
10 | */
11 | interface IERC721ReceiverUpgradeable {
12 | /**
13 | * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
14 | * by `operator` from `from`, this function is called.
15 | *
16 | * It must return its Solidity selector to confirm the token transfer.
17 | * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
18 | *
19 | * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.
20 | */
21 | function onERC721Received(
22 | address operator,
23 | address from,
24 | uint256 tokenId,
25 | bytes calldata data
26 | ) external returns (bytes4);
27 | }
28 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
3 |
4 | pragma solidity ^0.8.0;
5 | import "contracts/external/openzeppelin/contracts-upgradeable/proxy/Initializable.sol";
6 |
7 | /**
8 | * @dev Provides information about the current execution context, including the
9 | * sender of the transaction and its data. While these are generally available
10 | * via msg.sender and msg.data, they should not be accessed in such a direct
11 | * manner, since when dealing with meta-transactions the account sending and
12 | * paying for execution may not be the actual sender (as far as an application
13 | * is concerned).
14 | *
15 | * This contract is only required for intermediate, library-like contracts.
16 | */
17 | abstract contract ContextUpgradeable is Initializable {
18 | function __Context_init() internal onlyInitializing {}
19 |
20 | function __Context_init_unchained() internal onlyInitializing {}
21 |
22 | function _msgSender() internal view virtual returns (address) {
23 | return msg.sender;
24 | }
25 |
26 | function _msgData() internal view virtual returns (bytes calldata) {
27 | return msg.data;
28 | }
29 |
30 | /**
31 | * @dev This empty reserved space is put in place to allow future versions to add new
32 | * variables without shifting down storage in the inheritance chain.
33 | * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
34 | */
35 | uint256[50] private __gap;
36 | }
37 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/utils/CounterUpgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @title Counters
8 | * @author Matt Condon (@shrugs)
9 | * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
10 | * of elements in a mapping, issuing ERC721 ids, or counting request ids.
11 | *
12 | * Include with `using Counters for Counters.Counter;`
13 | */
14 | library CountersUpgradeable {
15 | struct Counter {
16 | // This variable should never be directly accessed by users of the library: interactions must be restricted to
17 | // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
18 | // this feature: see https://github.com/ethereum/solidity/issues/4637
19 | uint256 _value; // default: 0
20 | }
21 |
22 | function current(Counter storage counter) internal view returns (uint256) {
23 | return counter._value;
24 | }
25 |
26 | function increment(Counter storage counter) internal {
27 | unchecked {
28 | counter._value += 1;
29 | }
30 | }
31 |
32 | function decrement(Counter storage counter) internal {
33 | uint256 value = counter._value;
34 | require(value > 0, "Counter: decrement overflow");
35 | unchecked {
36 | counter._value = value - 1;
37 | }
38 | }
39 |
40 | function reset(Counter storage counter) internal {
41 | counter._value = 0;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/utils/ERC165Upgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts-upgradeable/utils/IERC165Upgradeable.sol";
7 | import "contracts/external/openzeppelin/contracts-upgradeable/proxy/Initializable.sol";
8 |
9 | /**
10 | * @dev Implementation of the {IERC165} interface.
11 | *
12 | * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
13 | * for the additional interface id that will be supported. For example:
14 | *
15 | * ```solidity
16 | * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
17 | * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
18 | * }
19 | * ```
20 | *
21 | * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
22 | */
23 | abstract contract ERC165Upgradeable is Initializable, IERC165Upgradeable {
24 | function __ERC165_init() internal onlyInitializing {}
25 |
26 | function __ERC165_init_unchained() internal onlyInitializing {}
27 |
28 | /**
29 | * @dev See {IERC165-supportsInterface}.
30 | */
31 | function supportsInterface(bytes4 interfaceId)
32 | public
33 | view
34 | virtual
35 | override
36 | returns (bool)
37 | {
38 | return interfaceId == type(IERC165Upgradeable).interfaceId;
39 | }
40 |
41 | /**
42 | * @dev This empty reserved space is put in place to allow future versions to add new
43 | * variables without shifting down storage in the inheritance chain.
44 | * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
45 | */
46 | uint256[50] private __gap;
47 | }
48 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts-upgradeable/utils/IERC165Upgradeable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @dev Interface of the ERC165 standard, as defined in the
8 | * https://eips.ethereum.org/EIPS/eip-165[EIP].
9 | *
10 | * Implementers can declare support of contract interfaces, which can then be
11 | * queried by others ({ERC165Checker}).
12 | *
13 | * For an implementation, see {ERC165}.
14 | */
15 | interface IERC165Upgradeable {
16 | /**
17 | * @dev Returns true if this contract implements the interface defined by
18 | * `interfaceId`. See the corresponding
19 | * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
20 | * to learn more about how these ids are created.
21 | *
22 | * This function call must use less than 30 000 gas.
23 | */
24 | function supportsInterface(bytes4 interfaceId) external view returns (bool);
25 | }
26 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/access/IAccessControlEnumerable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts/access/IAccessControl.sol";
7 |
8 | /**
9 | * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.
10 | */
11 | interface IAccessControlEnumerable is IAccessControl {
12 | /**
13 | * @dev Returns one of the accounts that have `role`. `index` must be a
14 | * value between 0 and {getRoleMemberCount}, non-inclusive.
15 | *
16 | * Role bearers are not sorted in any particular way, and their ordering may
17 | * change at any point.
18 | *
19 | * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure
20 | * you perform all queries on the same block. See the following
21 | * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]
22 | * for more information.
23 | */
24 | function getRoleMember(bytes32 role, uint256 index)
25 | external
26 | view
27 | returns (address);
28 |
29 | /**
30 | * @dev Returns the number of accounts that have `role`. Can be used
31 | * together with {getRoleMember} to enumerate all bearers of a role.
32 | */
33 | function getRoleMemberCount(bytes32 role) external view returns (uint256);
34 | }
35 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/proxy/ERC1967Proxy.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts/proxy/Proxy.sol";
7 | import "contracts/external/openzeppelin/contracts/proxy/ERC1967Upgrade.sol";
8 |
9 | /**
10 | * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
11 | * implementation address that can be changed. This address is stored in storage in the location specified by
12 | * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
13 | * implementation behind the proxy.
14 | */
15 | contract ERC1967Proxy is Proxy, ERC1967Upgrade {
16 | /**
17 | * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
18 | *
19 | * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
20 | * function call, and allows initializating the storage of the proxy like a Solidity constructor.
21 | */
22 | constructor(address _logic, bytes memory _data) payable {
23 | assert(
24 | _IMPLEMENTATION_SLOT ==
25 | bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)
26 | );
27 | _upgradeToAndCall(_logic, _data, false);
28 | }
29 |
30 | /**
31 | * @dev Returns the current implementation address.
32 | */
33 | function _implementation()
34 | internal
35 | view
36 | virtual
37 | override
38 | returns (address impl)
39 | {
40 | return ERC1967Upgrade._getImplementation();
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/proxy/IBeacon.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @dev This is the interface that {BeaconProxy} expects of its beacon.
8 | */
9 | interface IBeacon {
10 | /**
11 | * @dev Must return an address that can be used as a delegate call target.
12 | *
13 | * {BeaconProxy} will check that this address is a contract.
14 | */
15 | function implementation() external view returns (address);
16 | }
17 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/proxy/draft-IERC1822.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
8 | * proxy whose upgrades are fully controlled by the current implementation.
9 | */
10 | interface IERC1822Proxiable {
11 | /**
12 | * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
13 | * address.
14 | *
15 | * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
16 | * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
17 | * function revert if invoked through a proxy.
18 | */
19 | function proxiableUUID() external view returns (bytes32);
20 | }
21 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/token/IERC20Metadata.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts/token/IERC20.sol";
7 |
8 | /**
9 | * @dev Interface for the optional metadata functions from the ERC20 standard.
10 | *
11 | * _Available since v4.1._
12 | */
13 | interface IERC20Metadata is IERC20 {
14 | /**
15 | * @dev Returns the name of the token.
16 | */
17 | function name() external view returns (string memory);
18 |
19 | /**
20 | * @dev Returns the symbol of the token.
21 | */
22 | function symbol() external view returns (string memory);
23 |
24 | /**
25 | * @dev Returns the decimals places of the token.
26 | */
27 | function decimals() external view returns (uint8);
28 | }
29 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/utils/Context.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @dev Provides information about the current execution context, including the
8 | * sender of the transaction and its data. While these are generally available
9 | * via msg.sender and msg.data, they should not be accessed in such a direct
10 | * manner, since when dealing with meta-transactions the account sending and
11 | * paying for execution may not be the actual sender (as far as an application
12 | * is concerned).
13 | *
14 | * This contract is only required for intermediate, library-like contracts.
15 | */
16 | abstract contract Context {
17 | function _msgSender() internal view virtual returns (address) {
18 | return msg.sender;
19 | }
20 |
21 | function _msgData() internal view virtual returns (bytes calldata) {
22 | return msg.data;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/utils/Counters.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @title Counters
8 | * @author Matt Condon (@shrugs)
9 | * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
10 | * of elements in a mapping, issuing ERC721 ids, or counting request ids.
11 | *
12 | * Include with `using Counters for Counters.Counter;`
13 | */
14 | library Counters {
15 | struct Counter {
16 | // This variable should never be directly accessed by users of the library: interactions must be restricted to
17 | // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
18 | // this feature: see https://github.com/ethereum/solidity/issues/4637
19 | uint256 _value; // default: 0
20 | }
21 |
22 | function current(Counter storage counter) internal view returns (uint256) {
23 | return counter._value;
24 | }
25 |
26 | function increment(Counter storage counter) internal {
27 | unchecked {
28 | counter._value += 1;
29 | }
30 | }
31 |
32 | function decrement(Counter storage counter) internal {
33 | uint256 value = counter._value;
34 | require(value > 0, "Counter: decrement overflow");
35 | unchecked {
36 | counter._value = value - 1;
37 | }
38 | }
39 |
40 | function reset(Counter storage counter) internal {
41 | counter._value = 0;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/utils/ERC165.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | import "contracts/external/openzeppelin/contracts/utils/IERC165.sol";
7 |
8 | /**
9 | * @dev Implementation of the {IERC165} interface.
10 | *
11 | * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
12 | * for the additional interface id that will be supported. For example:
13 | *
14 | * ```solidity
15 | * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
16 | * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
17 | * }
18 | * ```
19 | *
20 | * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
21 | */
22 | abstract contract ERC165 is IERC165 {
23 | /**
24 | * @dev See {IERC165-supportsInterface}.
25 | */
26 | function supportsInterface(bytes4 interfaceId)
27 | public
28 | view
29 | virtual
30 | override
31 | returns (bool)
32 | {
33 | return interfaceId == type(IERC165).interfaceId;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/contracts/external/openzeppelin/contracts/utils/IERC165.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 | // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
3 |
4 | pragma solidity ^0.8.0;
5 |
6 | /**
7 | * @dev Interface of the ERC165 standard, as defined in the
8 | * https://eips.ethereum.org/EIPS/eip-165[EIP].
9 | *
10 | * Implementers can declare support of contract interfaces, which can then be
11 | * queried by others ({ERC165Checker}).
12 | *
13 | * For an implementation, see {ERC165}.
14 | */
15 | interface IERC165 {
16 | /**
17 | * @dev Returns true if this contract implements the interface defined by
18 | * `interfaceId`. See the corresponding
19 | * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
20 | * to learn more about how these ids are created.
21 | *
22 | * This function call must use less than 30 000 gas.
23 | */
24 | function supportsInterface(bytes4 interfaceId) external view returns (bool);
25 | }
26 |
--------------------------------------------------------------------------------
/contracts/interfaces/IAllowlistClient.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | import "contracts/interfaces/IAllowlist.sol";
19 |
20 | /**
21 | * @title IAllowlistClient
22 | * @author Ondo Finance
23 | * @notice The client interface for Ondo's Allowlist contract.
24 | */
25 | interface IAllowlistClient {
26 | /// @notice Returns reference to the allowlist that this client queries
27 | function allowlist() external view returns (IAllowlist);
28 |
29 | /// @notice Sets the allowlist contract reference
30 | function setAllowlist(address allowlist) external;
31 |
32 | /**
33 | * @dev Event for when the allowlist reference is set
34 | *
35 | * @param oldAllowlist The old allowlist
36 | * @param newAllowlist The new allowlist
37 | */
38 | event AllowlistSet(address oldAllowlist, address newAllowlist);
39 |
40 | /// @notice Error for when caller attempts to set the allowlist reference
41 | /// to the zero address.
42 | error AllowlistZeroAddress();
43 | }
44 |
--------------------------------------------------------------------------------
/contracts/interfaces/IAxelarExecutable.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.0;
4 |
5 | import {IAxelarGateway} from "./IAxelarGateway.sol";
6 |
7 | interface IAxelarExecutable {
8 | error InvalidAddress();
9 | error NotApprovedByGateway();
10 |
11 | function gateway() external view returns (IAxelarGateway);
12 |
13 | function execute(
14 | bytes32 commandId,
15 | string calldata sourceChain,
16 | string calldata sourceAddress,
17 | bytes calldata payload
18 | ) external;
19 |
20 | function executeWithToken(
21 | bytes32 commandId,
22 | string calldata sourceChain,
23 | string calldata sourceAddress,
24 | bytes calldata payload,
25 | string calldata tokenSymbol,
26 | uint256 amount
27 | ) external;
28 | }
29 |
--------------------------------------------------------------------------------
/contracts/interfaces/IAxelarGasService.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.0;
4 |
5 | // This should be owned by the microservice that is paying for gas.
6 | interface IAxelarGasService {
7 | // This is called on the source chain before calling the gateway to execute a remote contract.
8 | function payNativeGasForContractCall(
9 | address sender,
10 | string calldata destinationChain,
11 | string calldata destinationAddress,
12 | bytes calldata payload,
13 | address refundAddress
14 | ) external payable;
15 | }
16 |
--------------------------------------------------------------------------------
/contracts/interfaces/IAxelarGateway.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: MIT
2 |
3 | pragma solidity ^0.8.0;
4 |
5 | interface IAxelarGateway {
6 | function callContract(
7 | string calldata destinationChain,
8 | string calldata contractAddress,
9 | bytes calldata payload
10 | ) external;
11 |
12 | function validateContractCall(
13 | bytes32 commandId,
14 | string calldata sourceChain,
15 | string calldata sourceAddress,
16 | bytes32 payloadHash
17 | ) external returns (bool);
18 |
19 | function validateContractCallAndMint(
20 | bytes32 commandId,
21 | string calldata sourceChain,
22 | string calldata sourceAddress,
23 | bytes32 payloadHash,
24 | string calldata symbol,
25 | uint256 amount
26 | ) external returns (bool);
27 | }
28 |
--------------------------------------------------------------------------------
/contracts/interfaces/IBlocklist.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | interface IBlocklist {
19 | function addToBlocklist(address[] calldata accounts) external;
20 |
21 | function removeFromBlocklist(address[] calldata accounts) external;
22 |
23 | function isBlocked(address account) external view returns (bool);
24 |
25 | /**
26 | * @notice Event emitted when addresses are added to the blocklist
27 | *
28 | * @param accounts The addresses that were added to the blocklist
29 | */
30 | event BlockedAddressesAdded(address[] accounts);
31 |
32 | /**
33 | * @notice Event emitted when addresses are removed from the blocklist
34 | *
35 | * @param accounts The addresses that were removed from the blocklist
36 | */
37 | event BlockedAddressesRemoved(address[] accounts);
38 | }
39 |
--------------------------------------------------------------------------------
/contracts/interfaces/IBlocklistClient.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | import "contracts/interfaces/IBlocklist.sol";
19 |
20 | /**
21 | * @title IBlocklistClient
22 | * @author Ondo Finance
23 | * @notice The client interface for the Blocklist contract.
24 | */
25 | interface IBlocklistClient {
26 | /// @notice Returns reference to the blocklist that this client queries
27 | function blocklist() external view returns (IBlocklist);
28 |
29 | /// @notice Sets the blocklist reference
30 | function setBlocklist(address registry) external;
31 |
32 | /// @notice Error for when caller attempts to set the blocklist reference
33 | /// to the zero address
34 | error BlocklistZeroAddress();
35 |
36 | /// @notice Error for when caller attempts to perform action on a blocked
37 | /// account
38 | error BlockedAccount();
39 |
40 | /**
41 | * @dev Event for when the blocklist reference is set
42 | *
43 | * @param oldBlocklist The old blocklist
44 | * @param newBlocklist The new blocklist
45 | */
46 | event BlocklistSet(address oldBlocklist, address newBlocklist);
47 | }
48 |
--------------------------------------------------------------------------------
/contracts/interfaces/IOmmf.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 |
17 | import "contracts/external/openzeppelin/contracts/token/IERC20.sol";
18 |
19 | pragma solidity 0.8.16; // latest available for using OZ
20 |
21 | interface IOMMF is IERC20 {
22 | function getPooledCashByShares(uint256) external view returns (uint256);
23 |
24 | function getSharesByPooledCash(uint256) external view returns (uint256);
25 | }
26 |
--------------------------------------------------------------------------------
/contracts/interfaces/IPricer.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | interface IPricer {
19 | /**
20 | * @notice Gets the latest price of the asset
21 | *
22 | * @return uint256 The latest price of the asset
23 | */
24 | function getLatestPrice() external view returns (uint256);
25 |
26 | /**
27 | * @notice Gets the price of the asset at a specific priceId
28 | *
29 | * @param priceId The priceId at which to get the price
30 | *
31 | * @return uint256 The price of the asset with the given priceId
32 | */
33 | function getPrice(uint256 priceId) external view returns (uint256);
34 |
35 | /**
36 | * @notice Adds a price to the pricer
37 | *
38 | * @param price The price to add
39 | * @param timestamp The timestamp associated with the price
40 | *
41 | * @dev Updates the oracle price if price is the latest
42 | */
43 | function addPrice(uint256 price, uint256 timestamp) external;
44 |
45 | /**
46 | * @notice Updates a price in the pricer
47 | *
48 | * @param priceId The priceId to update
49 | * @param price The price to set
50 | */
51 | function updatePrice(uint256 priceId, uint256 price) external;
52 | }
53 |
--------------------------------------------------------------------------------
/contracts/interfaces/IPricerReader.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | interface IPricerReader {
19 | /**
20 | * @notice Gets the latest price of the asset
21 | *
22 | * @return uint256 The latest price of the asset
23 | */
24 | function getLatestPrice() external view returns (uint256);
25 |
26 | /**
27 | * @notice Gets the price of the asset at a specific priceId
28 | *
29 | * @param priceId The priceId at which to get the price
30 | *
31 | * @return uint256 The price of the asset with the given priceId
32 | */
33 | function getPrice(uint256 priceId) external view returns (uint256);
34 | }
35 |
--------------------------------------------------------------------------------
/contracts/interfaces/IRWALike.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 | */
15 | pragma solidity 0.8.16;
16 |
17 | // This interface is not inherited directly by RWA, instead, it is a
18 | // subset of functions provided by all RWA tokens that the RWA Hub
19 | // Client uses.
20 | import "contracts/external/openzeppelin/contracts/token/IERC20.sol";
21 |
22 | interface IRWALike is IERC20 {
23 | function mint(address to, uint256 amount) external;
24 |
25 | function burn(uint256 amount) external;
26 |
27 | function burnFrom(address from, uint256 amount) external;
28 | }
29 |
--------------------------------------------------------------------------------
/contracts/interfaces/IRWAOracle.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | interface IRWAOracle {
19 | /// @notice Retrieve RWA price data
20 | function getPriceData()
21 | external
22 | view
23 | returns (uint256 price, uint256 timestamp);
24 | }
25 |
--------------------------------------------------------------------------------
/contracts/interfaces/IUSDY.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 |
17 | import "contracts/external/openzeppelin/contracts/token/IERC20.sol";
18 |
19 | pragma solidity 0.8.16; // latest available for using OZ
20 |
21 | interface IUSDY is IERC20 {
22 | function getPooledCashByShares(uint256) external view returns (uint256);
23 |
24 | function getSharesByPooledCash(uint256) external view returns (uint256);
25 | }
26 |
--------------------------------------------------------------------------------
/contracts/interfaces/IUSDYManager.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 | ▄▄█████████▄
3 | ╓██▀└ ,╓▄▄▄, '▀██▄
4 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
5 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
6 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
7 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
8 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
9 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
10 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
11 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
12 | ╙▀▀██████R⌐
13 | */
14 | pragma solidity 0.8.16;
15 |
16 | interface IUSDYManager {
17 | function setClaimableTimestamp(
18 | uint256 claimDate,
19 | bytes32[] calldata depositIds
20 | ) external;
21 |
22 | /**
23 | * @notice Event emitted when claimable timestamp is set
24 | *
25 | * @param claimTimestamp The timestamp at which the mint can be claimed
26 | * @param depositId The depositId that can claim at the given
27 | `claimTimestamp`
28 | */
29 | event ClaimableTimestampSet(
30 | uint256 indexed claimTimestamp,
31 | bytes32 indexed depositId
32 | );
33 |
34 | /// ERRORS ///
35 | error MintNotYetClaimable();
36 | error ClaimableTimestampInPast();
37 | error ClaimableTimestampNotSet();
38 | }
39 |
--------------------------------------------------------------------------------
/contracts/interfaces/IWommf.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 |
17 | import "contracts/external/openzeppelin/contracts/token/IERC20.sol";
18 |
19 | pragma solidity 0.8.16; // latest available for using OZ
20 |
21 | interface IWOMMF is IERC20 {
22 | function wrap(uint256 _OMMFAmount) external;
23 |
24 | function unwrap(uint256 _wOMMFAmount) external;
25 |
26 | function getwOMMFByOMMF(uint256 _OMMFAmount) external view returns (uint256);
27 |
28 | function getOMMFbywOMMF(uint256 _wOMMFAmount) external view returns (uint256);
29 | }
30 |
--------------------------------------------------------------------------------
/contracts/rwaOracles/IRWADynamicOracle.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | interface IRWADynamicOracle {
19 | /// @notice Retrieve RWA price data
20 | function getPrice() external view returns (uint256);
21 | }
22 |
--------------------------------------------------------------------------------
/contracts/rwaOracles/IRWAOracle.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | interface IRWAOracle {
19 | /// @notice Retrieve RWA price data
20 | function getPriceData()
21 | external
22 | view
23 | returns (uint256 price, uint256 timestamp);
24 | }
25 |
--------------------------------------------------------------------------------
/contracts/usdy/allowlist/AllowlistProxy.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | import "contracts/external/openzeppelin/contracts/proxy/TransparentUpgradeableProxy.sol";
19 |
20 | contract AllowlistProxy is TransparentUpgradeableProxy {
21 | constructor(
22 | address _logic,
23 | address _admin,
24 | bytes memory _data
25 | ) TransparentUpgradeableProxy(_logic, _admin, _data) {}
26 | }
27 |
--------------------------------------------------------------------------------
/deploy/mainnet_constants.ts:
--------------------------------------------------------------------------------
1 | export const KYC_REGISTRY = "0x7cE91291846502D50D635163135B2d40a602dc70";
2 | export const USDC_MAINNET = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48";
3 | export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
4 |
5 | /*//////////////////////////////////////////////////////////////
6 | USDY Constants
7 | //////////////////////////////////////////////////////////////*/
8 |
9 | // Prod Constants - To Set Before Deployment
10 | export const PROD_GUARDIAN_USDY = "0x1a694A09494E214a3Be3652e4B343B7B81A73ad7";
11 | export const PROD_ASSET_SENDER_USDY =
12 | "0x5Eb3ac7D9B8220C484307a2506D611Cc759626Ca";
13 | export const PROD_FEE_RECIPIENT_USDY =
14 | "0x1a694A09494E214a3Be3652e4B343B7B81A73ad7";
15 | // Updated for sheet
16 | export const PROD_PAUSER_USDY = "0x2e55b738F5969Eea10fB67e326BEE5e2fA15A2CC";
17 | export const PROD_MANAGER_ADMIN_USDY =
18 | "0x1a694A09494E214a3Be3652e4B343B7B81A73ad7";
19 | export const PROD_INSTANT_MINTER_ADMIN_USDY =
20 | "0x1a694A09494E214a3Be3652e4B343B7B81A73ad7";
21 |
22 | /*//////////////////////////////////////////////////////////////
23 | OMMF Constants
24 | //////////////////////////////////////////////////////////////*/
25 |
26 | // Prod deployed contracts
27 | export const PROD_KYC_REGISTRY = "0x7cE91291846502D50D635163135B2d40a602dc70";
28 | export const PROD_ORACLE = "0xc53e6824480d976180A65415c19A6931D17265BA";
29 |
30 | export const SANCTION_ADDRESS = "0x40c57923924b5c5c5455c48d93317139addac8fb";
31 | export const PROD_BRIDGE_APPROVER_ONDO = "";
32 |
--------------------------------------------------------------------------------
/deploy/usdy/local/deploy_blocklist.ts:
--------------------------------------------------------------------------------
1 | import { HardhatRuntimeEnvironment } from "hardhat/types";
2 | import { DeployFunction } from "hardhat-deploy/types";
3 | const { ethers } = require("hardhat");
4 |
5 | const deployBlocklist: DeployFunction = async function (
6 | hre: HardhatRuntimeEnvironment
7 | ) {
8 | const { deployments, getNamedAccounts } = hre;
9 | const { save } = deployments;
10 | const { deployer } = await getNamedAccounts();
11 | const { deploy } = deployments;
12 | const signers = await ethers.getSigners();
13 |
14 | const guardian = signers[1];
15 |
16 | await deploy("Blocklist", {
17 | from: deployer,
18 | args: [],
19 | log: true,
20 | });
21 |
22 | // Execute in script for prod
23 | const blocklist = await ethers.getContract("Blocklist");
24 | await blocklist.transferOwnership(guardian.address);
25 | await blocklist.connect(guardian).acceptOwnership();
26 | };
27 |
28 | deployBlocklist.tags = ["Local", "Blocklist"];
29 | deployBlocklist.dependencies = ["Allowlist"];
30 | export default deployBlocklist;
31 |
--------------------------------------------------------------------------------
/deploy/usdy/local/deploy_pricer.ts:
--------------------------------------------------------------------------------
1 | import { HardhatRuntimeEnvironment } from "hardhat/types";
2 | import { DeployFunction } from "hardhat-deploy/types";
3 | import { parseUnits } from "ethers/lib/utils";
4 | const { ethers } = require("hardhat");
5 |
6 | const deploy_usdyPricer: DeployFunction = async function (
7 | hre: HardhatRuntimeEnvironment
8 | ) {
9 | const { deployments, getNamedAccounts } = hre;
10 | const { deployer } = await getNamedAccounts();
11 | const { deploy } = deployments;
12 | const signers = await ethers.getSigners();
13 |
14 | const guardian = signers[1];
15 | const managerAdmin = signers[2];
16 |
17 | await deploy("USDY_Pricer", {
18 | from: deployer,
19 | contract: "Pricer",
20 | args: [guardian.address, managerAdmin.address],
21 | log: true,
22 | });
23 |
24 | const pricer = await ethers.getContract("USDY_Pricer");
25 |
26 | // Set price to $1
27 | await pricer.connect(managerAdmin).addPrice(parseUnits("10", 18), "1");
28 | };
29 | deploy_usdyPricer.tags = ["Local", "pricer-usdy"];
30 | export default deploy_usdyPricer;
31 |
--------------------------------------------------------------------------------
/deploy/usdy/local/deploy_receiverBridge.ts:
--------------------------------------------------------------------------------
1 | import { HardhatRuntimeEnvironment } from "hardhat/types";
2 | import { DeployFunction } from "hardhat-deploy/types";
3 | import { parseUnits } from "ethers/lib/utils";
4 | const { ethers } = require("hardhat");
5 |
6 | const deployReceiver: DeployFunction = async function (
7 | hre: HardhatRuntimeEnvironment
8 | ) {
9 | const { deployments, getNamedAccounts } = hre;
10 | const { save } = deployments;
11 | const { deployer } = await getNamedAccounts();
12 | const { deploy } = deployments;
13 |
14 | /// @notice: update based on chain deploying to
15 | const AXELAR_GATEWAY = "0x4F4495243837681061C4743b74B3eEdf548D56A5";
16 |
17 | const signers = await ethers.getSigners();
18 |
19 | const guardian = signers[1];
20 | const ondoSigner = signers[12];
21 |
22 | const usdy = await ethers.getContract("USDY");
23 | const allowlist = await ethers.getContract("Allowlist");
24 |
25 | await deploy("DestinationBridge", {
26 | from: deployer,
27 | args: [
28 | usdy.address,
29 | AXELAR_GATEWAY,
30 | allowlist.address,
31 | ondoSigner.address,
32 | guardian.address,
33 | parseUnits("100000", 18),
34 | 86400,
35 | ],
36 | log: true,
37 | });
38 | };
39 |
40 | deployReceiver.tags = ["Local", "DestinationBridge"];
41 | deployReceiver.dependencies = ["usdyManager"];
42 | export default deployReceiver;
43 |
--------------------------------------------------------------------------------
/deploy/usdy/local/deploy_sourceBridge.ts:
--------------------------------------------------------------------------------
1 | import { HardhatRuntimeEnvironment } from "hardhat/types";
2 | import { DeployFunction } from "hardhat-deploy/types";
3 | import { PROD_GUARDIAN_USDY } from "../../mainnet_constants";
4 | import { parseUnits } from "ethers/lib/utils";
5 | const { ethers } = require("hardhat");
6 | const inquire = require("inquirer");
7 |
8 | const deploySourceBridge: DeployFunction = async function (
9 | hre: HardhatRuntimeEnvironment
10 | ) {
11 | const { deployments, getNamedAccounts } = hre;
12 | const { save } = deployments;
13 | const { deployer } = await getNamedAccounts();
14 | const { deploy } = deployments;
15 |
16 | /// @notice: update based on chain deploying to
17 | const AXELAR_GATEWAY = "0x4F4495243837681061C4743b74B3eEdf548D56A5";
18 | const AXELAR_GAS_SERVICE = "0x2d5d7d31F671F86C782533cc367F14109a082712";
19 |
20 | const usdy = await ethers.getContract("USDY");
21 |
22 | const signers = await ethers.getSigners();
23 | const guardian = signers[1];
24 |
25 | await deploy("SourceBridge", {
26 | from: deployer,
27 | args: [usdy.address, AXELAR_GATEWAY, AXELAR_GAS_SERVICE, guardian.address],
28 | logs: true,
29 | });
30 | };
31 |
32 | deploySourceBridge.tags = ["Prod-USDY-SourceBridge", "Local"];
33 | deploySourceBridge.dependencies = ["usdyManager"];
34 | export default deploySourceBridge;
35 |
--------------------------------------------------------------------------------
/deploy/usdy/local/deploy_usdyDRO.ts:
--------------------------------------------------------------------------------
1 | import { HardhatRuntimeEnvironment } from "hardhat/types";
2 | import { DeployFunction } from "hardhat-deploy/types";
3 | import { parseUnits } from "ethers/lib/utils";
4 | const { ethers } = require("hardhat");
5 |
6 | const deploy_usdyDynamicRateOracle: DeployFunction = async function (
7 | hre: HardhatRuntimeEnvironment
8 | ) {
9 | const { deployments, getNamedAccounts } = hre;
10 | const { deployer } = await getNamedAccounts();
11 | const { deploy } = deployments;
12 | const signers = await ethers.getSigners();
13 |
14 | // Admin Roles for DRO
15 | const guardian = signers[1];
16 | const setter = signers[2];
17 | const pauser = signers[3];
18 |
19 | // First Range Params for DRO
20 | const firstRangeStart = 1690833600;
21 | console.log(firstRangeStart.toString());
22 | const firstRangeEnd = 1693512000;
23 | const dailyIR = parseUnits("1.00013368", 27);
24 | const rangeStart = parseUnits("1", 18);
25 |
26 | await deploy("RWADynamicOracle", {
27 | from: deployer,
28 | args: [
29 | guardian.address,
30 | setter.address,
31 | pauser.address,
32 | firstRangeStart,
33 | firstRangeEnd,
34 | dailyIR,
35 | rangeStart,
36 | ],
37 | log: true,
38 | });
39 | };
40 | deploy_usdyDynamicRateOracle.tags = ["Local", "oracle-usdy"];
41 | export default deploy_usdyDynamicRateOracle;
42 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/035bc6d744b912109c172be636c97924-66C8B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/035bc6d744b912109c172be636c97924-66C8B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/0dd28fc82fcaf9a8a1442f82d74b1e5a-024A3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/0dd28fc82fcaf9a8a1442f82d74b1e5a-024A3.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1-B2132.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1-B2132.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1080667809002037320-8957D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1080667809002037320-8957D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1083068685914214490-81D5F.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1083068685914214490-81D5F.gif
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1083068770823721071-EE4F6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1083068770823721071-EE4F6.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/144e17cbf14eb2efd14bea40c63679ed-EA8CA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/144e17cbf14eb2efd14bea40c63679ed-EA8CA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/14ea78b80318f2bf28da987fc2be9912-F4E16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/14ea78b80318f2bf28da987fc2be9912-F4E16.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1c4a80121deeb5d2fdd1654a720538b4-2A197.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1c4a80121deeb5d2fdd1654a720538b4-2A197.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1d7d4ad022d0fad9451ca889dee49b79-25555.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1d7d4ad022d0fad9451ca889dee49b79-25555.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f31a-181DA.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f3c1-445DC.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f3c6-621A1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f3fe-4366C.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f440-6C64D.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f446-9CC34.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f44b-8A059.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f44d-1f3fb-ED2AA.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f44d-1f3fe-78CB5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f44d-27259.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f49c-71A75.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f4ab-917C8.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f4af-4CFF5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f4dc-AC641.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f50d-195C0.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f525-8FE4F.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f602-168C5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f604-BF863.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f605-42B43.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f609-9EC67.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f610-B3309.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f622-BDD22.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f626-91074.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f633-5703D.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f635-5120A.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f642-83E8A.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f643-F8BDC.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f644-329A4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f64f-1f3fb-984F1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f64f-22B8D.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f680-A35CE.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f6a8-A8AB3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f914-15707.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f916-AD810.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f91e-2A114.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f923-5854E.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f929-12865.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f972-F415D.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f9d0-3E117.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/1f9d1-5BC80.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2-ADBB4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2-ADBB4.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/203c-3876B.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2696-15F4A.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/26ffd9db9044f450b5db4361d4e6ddf9-207D4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/26ffd9db9044f450b5db4361d4e6ddf9-207D4.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2705-0589F.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2764-A3D25.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2a9faff195fe333526cfe6ae6fce1420-49B98.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2c1e18acbcb9cdaeabfd7fc6f5090edf-CA387.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/2de2bcb6fe2e5617e1d3dd4c56a5a8f1-DE975.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/3-FB033.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/3-FB033.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/366b7bd30566c2cb7cfbe6ce4a9cb61e-62DA9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/366b7bd30566c2cb7cfbe6ce4a9cb61e-62DA9.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/4-4551A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/4-4551A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/402b68164a51455e395a06ad04fc04b5-D7A38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/402b68164a51455e395a06ad04fc04b5-D7A38.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/40faf496db7b4bbcab37bc04b134567d-EFC50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/40faf496db7b4bbcab37bc04b134567d-EFC50.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/43d2ed53dfa2a29f5aa26a327c03efda-A80D9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/43d2ed53dfa2a29f5aa26a327c03efda-A80D9.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/472e8696c1d575b51208a8571994c6bf-B0333.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/472e8696c1d575b51208a8571994c6bf-B0333.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/48855-124DD:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/48855-124DD
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/48a9a9fe43e4faa98d5a904b32dc059c-210A2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/48a9a9fe43e4faa98d5a904b32dc059c-210A2.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/4c405c8d602d7b3489d628bf20bfb843-9DFC8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/4c405c8d602d7b3489d628bf20bfb843-9DFC8.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5-E9BDB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5-E9BDB.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/543748db4b87f639129734824cf72301-433AE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/543748db4b87f639129734824cf72301-433AE.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/55afac51a32db1ff015fd3a7d901e67a-A5862.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/55afac51a32db1ff015fd3a7d901e67a-A5862.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/55b9ac870fd4a1b4fc5a8c0550c27aa4-D1820.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/55b9ac870fd4a1b4fc5a8c0550c27aa4-D1820.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/593f36e88b1657d978d620f5152eca82-52AEA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/593f36e88b1657d978d620f5152eca82-52AEA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/599667a9bd34d1211af25019e6da7fa4-6667B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/599667a9bd34d1211af25019e6da7fa4-6667B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5b71d15a9bcde45fd5520e3fb580eb53-E1A50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5b71d15a9bcde45fd5520e3fb580eb53-E1A50.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5d084bf7a4698ae3113c164cdd53ccbe-F4903.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5d084bf7a4698ae3113c164cdd53ccbe-F4903.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5e3fb61df91ed29c573265a690af4600-E824E.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/5e3fb61df91ed29c573265a690af4600-E824E.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6025a7083a6d722dcbe6f458733cc1c1-DAFB7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6025a7083a6d722dcbe6f458733cc1c1-DAFB7.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6094e48ab77eb87fae4e3348c0d872b4-34FEF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6094e48ab77eb87fae4e3348c0d872b4-34FEF.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/641ea524f5de8dcf2fc726fa3ef176b9-E98DB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/641ea524f5de8dcf2fc726fa3ef176b9-E98DB.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6519fe644ecf954cfdf81ad4c9fbaad9-B43F2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6519fe644ecf954cfdf81ad4c9fbaad9-B43F2.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6738f0f683face7b5e6d5289a3fbef10-57324.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6738f0f683face7b5e6d5289a3fbef10-57324.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/674bc4b552acb3940dbf5ce93b4d950e-93677.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/674bc4b552acb3940dbf5ce93b4d950e-93677.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/67594ee4b4d1fc03bca468327a0d145b-BD76A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6a2cca271eb60a7b0247f2f558898ca6-E5800.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6a2cca271eb60a7b0247f2f558898ca6-E5800.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6ad4ef2f519afddce2d78021aa7dd099-B55F0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6ad4ef2f519afddce2d78021aa7dd099-B55F0.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6ed42d9e748568dc846549b81266418b-5A740.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/6ed42d9e748568dc846549b81266418b-5A740.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/701300a5bdd3bf5640bd1370251533e2-0DC47.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/701300a5bdd3bf5640bd1370251533e2-0DC47.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/719c80747e70afb73ebb8268ac33f8a1-A5572.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/719c80747e70afb73ebb8268ac33f8a1-A5572.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/76aebd00517517684d8f213aaaa5b8c8-2EBFA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/76aebd00517517684d8f213aaaa5b8c8-2EBFA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/785c0b7123c292fe05d43e8dbf0d7044-B46B9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/785c0b7123c292fe05d43e8dbf0d7044-B46B9.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893827027075142-F23DF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893827027075142-F23DF.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893827089727568-5FD38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893827089727568-5FD38.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893827315826708-F59C0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893827315826708-F59C0.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893828280909886-FBF42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/851893828280909886-FBF42.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/85e5270363b15970d662250fdf09afe7-43E64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/85e5270363b15970d662250fdf09afe7-43E64.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/8627bef0c0656a500cc0ddf3110a1eb6-05D99.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/8627bef0c0656a500cc0ddf3110a1eb6-05D99.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/877575988496715777-7C3BA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/877575988496715777-7C3BA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/8aae0b753d870f000d6ebe243e741bac-B9A1F.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/8aae0b753d870f000d6ebe243e741bac-B9A1F.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/910676187288846397-518CD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/910676187288846397-518CD.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/9354952ae06755bad04887d120f97a21-0F45C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/9354952ae06755bad04887d120f97a21-0F45C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/94fcb7838a04ec855fb2853565f07b3c-02B6F.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/94fcb7838a04ec855fb2853565f07b3c-02B6F.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/970d2e2f00cd7ef2134a1a3f21326349-404EA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/977133670429261884-CA8EA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/977133670429261884-CA8EA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/9b48fc63832ff892d253268456fa7c48-B96A3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/9b48fc63832ff892d253268456fa7c48-B96A3.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/9bf2181404e658cab4039c07df56213f-E3E89.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/9bf2181404e658cab4039c07df56213f-E3E89.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/IMG_6639-0138C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/IMG_6639-0138C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/Screenshot_2023-09-03_at_02.05.24-AE0FF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/Screenshot_2023-09-03_at_02.05.24-AE0FF.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/Screenshot_2023-09-07_at_9.05.44_PM-2A6F5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/Screenshot_2023-09-07_at_9.05.44_PM-2A6F5.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/Spider_Man_meme-54021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/Spider_Man_meme-54021.jpg
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/a476320e0ef8160f4704597ba8e9b4b8-ECB13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/a476320e0ef8160f4704597ba8e9b4b8-ECB13.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/a6343b73d7602db7cfed31d5c33e2765-E1A7E.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/a6343b73d7602db7cfed31d5c33e2765-E1A7E.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/a_6a2c603150e3344ef5e3e925d035bc97-8E140.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/a_6a2c603150e3344ef5e3e925d035bc97-8E140.gif
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/aa24291fb1227c5734330daec1d79595-C9CFC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/aa24291fb1227c5734330daec1d79595-C9CFC.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ac37f50421d713952c5567868c0ce8fc-83194.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ac37f50421d713952c5567868c0ce8fc-83194.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ae1b465d85239ce06424fdef03fbb9a4-9DE53.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ae1b465d85239ce06424fdef03fbb9a4-9DE53.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/again-do-it-faster-2ACBB.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/again-do-it-faster-2ACBB.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/b0fa46fcf237f5497b71eea9d38eeeeb-2A6D7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/b0fa46fcf237f5497b71eea9d38eeeeb-2A6D7.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/b4fead77f737aa7840a25e1cd39eb062-CEDEC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/b4fead77f737aa7840a25e1cd39eb062-CEDEC.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bb343372d44b28557a1291ab7f03b53d-CD490.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bb343372d44b28557a1291ab7f03b53d-CD490.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bb9f76664711c9b5009e7a6add580b29-7CFF5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bb9f76664711c9b5009e7a6add580b29-7CFF5.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bc384b88-7513-430f-aaf0-012648e912af-5A909:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bc384b88-7513-430f-aaf0-012648e912af-5A909
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bea7207300b3d3fa79c0f645dda7a76c-46FEB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bea7207300b3d3fa79c0f645dda7a76c-46FEB.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bean-mr-3F367.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bean-mr-3F367.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bored-bore-E8E1E.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/bored-bore-E8E1E.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c4-og-banner-6764C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c4-og-banner-6764C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c4-og-banner-7DE3A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c4-og-banner-7DE3A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c4fbf35c3e69a04ebc3a8a32a0bd3514-A8D31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c4fbf35c3e69a04ebc3a8a32a0bd3514-A8D31.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c6b85a4a6ca07ab15a30a24f570be5b8-F9476.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/c6b85a4a6ca07ab15a30a24f570be5b8-F9476.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d28fcb32fb4a0872e0cbaf200d440c26-CFD73.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d28fcb32fb4a0872e0cbaf200d440c26-CFD73.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d352b5d64239648acbeb7b6f310df0b8-E875A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d352b5d64239648acbeb7b6f310df0b8-E875A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d5d4ed583f2e7ec08c567b2b90bb1ee3-AAEEE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d5d4ed583f2e7ec08c567b2b90bb1ee3-AAEEE.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d642f18d72ce83a77898d3e8c0f2191f-5911C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d642f18d72ce83a77898d3e8c0f2191f-5911C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d85cc85f5ae1a41d5af8e007f9a8b79e-001E5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d85cc85f5ae1a41d5af8e007f9a8b79e-001E5.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d9fa0ae50d731854d342f81d679964af-D6B3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/d9fa0ae50d731854d342f81d679964af-D6B3D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/dance-moms-stressed-15889.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/dance-moms-stressed-15889.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/dance-monkey-dancing-A36B5.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/dance-monkey-dancing-A36B5.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/deep-sigh-albert-wesker-2EB93.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/deep-sigh-albert-wesker-2EB93.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/e0f9fe1af6a871c47188e3ba9b1851fa-2682D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/e0f9fe1af6a871c47188e3ba9b1851fa-2682D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/e9472a11f41d425badda92e53fc91864-F560D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/e9472a11f41d425badda92e53fc91864-F560D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ebf4c0b23a574c269394032e94f059e0-D342D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ebf4c0b23a574c269394032e94f059e0-D342D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ee6c31750f46b7cd080ab8b84efae1c2-9E926.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ee6c31750f46b7cd080ab8b84efae1c2-9E926.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/etherscan-logo-circle-A29B1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/etherscan-logo-circle-A29B1.jpg
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/fd032d1c27ba593b4fbe6be4c074663d-78A1D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/fd032d1c27ba593b4fbe6be4c074663d-78A1D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/fd8d69ec1289ed3faab1522d8912d65b-3E91A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/fd8d69ec1289ed3faab1522d8912d65b-3E91A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-400-E988B.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-400-E988B.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-500-0777F.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-500-0777F.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-600-CB411.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-600-CB411.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-700-891AC.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-700-891AC.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-800-D36B0.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-italic-800-D36B0.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-400-1456D.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-400-1456D.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-500-89CE5.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-500-89CE5.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-600-C1EA8.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-600-C1EA8.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-700-1949A.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-700-1949A.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-800-58487.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ggsans-normal-800-58487.woff2
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/im-on-my-way-gordon-oliver-5E998.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/im-on-my-way-gordon-oliver-5E998.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/im-waiting-daffy-duck-33B86.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/im-waiting-daffy-duck-33B86.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-0187A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-0187A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-1C619.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-1C619.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-2CC20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-2CC20.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-57F3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-57F3D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-596BC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-596BC.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-65488.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-65488.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-6E3FB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-6E3FB.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-88D47.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-88D47.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-AE99B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-AE99B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-DE17C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-DE17C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-EA95A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/image-EA95A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/its-real-and-its-coming-kate-dibiasky-B6474.mov:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/its-real-and-its-coming-kate-dibiasky-B6474.mov
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/itscoming-elf-D4437.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/itscoming-elf-D4437.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/lets-wait-grady-smith-9964F.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/lets-wait-grady-smith-9964F.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/love-languages-4DD7E.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/love-languages-4DD7E.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/me-waiting-for-my-friends-to-get-online-7FE29.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/me-waiting-for-my-friends-to-get-online-7FE29.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/meonly-41FC4.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/meonly-41FC4.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/nervous-glance-53A80.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/nervous-glance-53A80.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/nervous-lmao-B1AAF.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/nervous-lmao-B1AAF.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/og_image-46462.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/og_image-46462.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ondo-wordmark-hero-card-44A2F.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/ondo-wordmark-hero-card-44A2F.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/platypus-6B5F6.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/platypus-6B5F6.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/private-skipper-DDE90.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/private-skipper-DDE90.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].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-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/the-office-pam-beesly-B8BFE.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/the-office-pam-beesly-B8BFE.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/the-penguins-of-madagascar-madagascar-81BB2.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/the-penguins-of-madagascar-madagascar-81BB2.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/thor-ragnarok-mouth-shut-502ED.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/thor-ragnarok-mouth-shut-502ED.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-still-6D179.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-still-6D179.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-titanic-684B8.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-titanic-684B8.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-wait-cd-dojo-D5E4E.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-wait-cd-dojo-D5E4E.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-waiting-patiently-3794C.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].html_Files/waiting-waiting-patiently-3794C.mp4
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/48855-124DD:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/48855-124DD
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/IMG_6639-0138C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/IMG_6639-0138C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/Screenshot_2023-09-03_at_02.05.24-AE0FF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/Screenshot_2023-09-03_at_02.05.24-AE0FF.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/Screenshot_2023-09-07_at_9.05.44_PM-2A6F5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/Screenshot_2023-09-07_at_9.05.44_PM-2A6F5.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/Spider_Man_meme-54021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/Spider_Man_meme-54021.jpg
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/again-do-it-faster-59A6F.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/again-do-it-faster-59A6F.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/bc384b88-7513-430f-aaf0-012648e912af-5A909:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/bc384b88-7513-430f-aaf0-012648e912af-5A909
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/bean-mr-93626.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/bean-mr-93626.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/bored-bore-2A73A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/bored-bore-2A73A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/c4-og-banner-6764C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/c4-og-banner-6764C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/c4-og-banner-7DE3A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/c4-og-banner-7DE3A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/dance-moms-stressed-EF88F.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/dance-moms-stressed-EF88F.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/dance-monkey-dancing-73408.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/dance-monkey-dancing-73408.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/deep-sigh-albert-wesker-F11BF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/deep-sigh-albert-wesker-F11BF.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/etherscan-logo-circle-A29B1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/etherscan-logo-circle-A29B1.jpg
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/im-on-my-way-gordon-oliver-A0882.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/im-on-my-way-gordon-oliver-A0882.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/im-waiting-daffy-duck-CDF9B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/im-waiting-daffy-duck-CDF9B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-0187A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-0187A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-1C619.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-1C619.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-2CC20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-2CC20.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-57F3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-57F3D.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-596BC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-596BC.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-65488.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-65488.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-6E3FB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-6E3FB.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-88D47.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-88D47.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-AE99B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-AE99B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-DE17C.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-DE17C.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-EA95A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/image-EA95A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/its-real-and-its-coming-kate-dibiasky-B6474.mov:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/its-real-and-its-coming-kate-dibiasky-B6474.mov
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/itscoming-elf-AA964.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/itscoming-elf-AA964.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/lets-wait-grady-smith-946E8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/lets-wait-grady-smith-946E8.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/love-languages-937DE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/love-languages-937DE.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/me-waiting-for-my-friends-to-get-online-3049B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/me-waiting-for-my-friends-to-get-online-3049B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/meonly-48A42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/meonly-48A42.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/nervous-glance-E8227.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/nervous-glance-E8227.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/nervous-lmao-2E280.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/nervous-lmao-2E280.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/og_image-46462.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/og_image-46462.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/ondo-wordmark-hero-card-44A2F.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/ondo-wordmark-hero-card-44A2F.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/platypus-A835B.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/platypus-A835B.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/private-skipper-B8224.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/private-skipper-B8224.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/the-office-pam-beesly-893FC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/the-office-pam-beesly-893FC.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/the-penguins-of-madagascar-madagascar-8262A.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/the-penguins-of-madagascar-madagascar-8262A.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/thor-ragnarok-mouth-shut-B2015.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/thor-ragnarok-mouth-shut-B2015.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-still-567AA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-still-567AA.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-titanic-8E949.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-titanic-8E949.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-wait-cd-dojo-24454.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-wait-cd-dojo-24454.png
--------------------------------------------------------------------------------
/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-waiting-patiently-264C9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/discord-export/Code4rena - ARCHIVE-Q3-2023 - ondo-sep01 [1145752078334042203].txt_Files/waiting-waiting-patiently-264C9.png
--------------------------------------------------------------------------------
/forge-tests/MinimalTestRunner.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | import "forge-tests/helpers/Constants.sol";
4 | import "forge-tests/helpers/DSTestPlus.sol";
5 |
6 | /// @notice Contract to be inherited by tests that require no shared setup
7 | abstract contract MinimalTestRunner is DSTestPlus, Constants, Tokens {
8 | function _formatACRevert(
9 | address account,
10 | bytes32 role
11 | ) internal pure returns (bytes memory) {
12 | string memory error1 = "AccessControl: account ";
13 | string memory error2 = " is missing role ";
14 | return
15 | abi.encodePacked(
16 | error1,
17 | Strings.toHexString(uint160(account), 20),
18 | error2,
19 | Strings.toHexString(uint256(role))
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/forge-tests/helpers/Constants.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | import "contracts/RWAHub.sol";
4 | import "contracts/Pricer.sol";
5 | import "contracts/external/chainalysis/ISanctionsList.sol";
6 | import "contracts/external/openzeppelin/contracts/token/IERC20.sol";
7 |
8 | // Known production mainnet token contracts.
9 | contract Tokens {
10 | /*//////////////////////////////////////////////////////////////
11 | Ethereum Tokens
12 | //////////////////////////////////////////////////////////////*/
13 | IERC20 public USDC = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
14 | IERC20 public DAI = IERC20(0x6B175474E89094C44Da98b954EedeAC495271d0F);
15 | IERC20 public FRAX = IERC20(0x853d955aCEf822Db058eb8505911ED77F175b99e);
16 | IERC20 public LUSD = IERC20(0x5f98805A4E8be255a32880FDeC7F6728C6568bA0);
17 | IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);
18 | }
19 |
20 | contract Oracles {
21 | // Chainalysis
22 | ISanctionsList public constant SANCTIONS_ORACLE =
23 | ISanctionsList(0x40C57923924B5c5c5455c48D93317139ADDaC8fb);
24 | }
25 |
26 | contract Constants {
27 | // Manager addresses
28 | address constant guardian = address(0xFEDBAD);
29 | address constant managerAdmin = address(0xC0FFEE);
30 | address constant pauser = address(0xFFFFFFF);
31 | address constant assetSender = address(0xFEEDBEEF);
32 | address constant feeRecipient = address(0x123456);
33 | address constant relayer = address(0xBADBEEF);
34 | address constant instantMintAssetManager = address(0xBAEBAE);
35 |
36 | // User Addresses
37 | address constant alice = address(0x9999991);
38 | address constant bob = address(0x9999992);
39 | address constant charlie = address(0x9999993);
40 | address constant badActor = address(0xBADBAD);
41 | }
42 |
--------------------------------------------------------------------------------
/forge-tests/helpers/DeltaCheckHarness.sol:
--------------------------------------------------------------------------------
1 | /**SPDX-License-Identifier: BUSL-1.1
2 |
3 | ▄▄█████████▄
4 | ╓██▀└ ,╓▄▄▄, '▀██▄
5 | ██▀ ▄██▀▀╙╙▀▀██▄ └██µ ,, ,, , ,,, ,,,
6 | ██ ,██¬ ▄████▄ ▀█▄ ╙█▄ ▄███▀▀███▄ ███▄ ██ ███▀▀▀███▄ ▄███▀▀███,
7 | ██ ██ ╒█▀' ╙█▌ ╙█▌ ██ ▐██ ███ █████, ██ ██▌ └██▌ ██▌ └██▌
8 | ██ ▐█▌ ██ ╟█ █▌ ╟█ ██▌ ▐██ ██ └███ ██ ██▌ ╟██ j██ ╟██
9 | ╟█ ██ ╙██ ▄█▀ ▐█▌ ██ ╙██ ██▌ ██ ╙████ ██▌ ▄██▀ ██▌ ,██▀
10 | ██ "██, ╙▀▀███████████⌐ ╙████████▀ ██ ╙██ ███████▀▀ ╙███████▀`
11 | ██▄ ╙▀██▄▄▄▄▄,,, ¬─ '─¬
12 | ╙▀██▄ '╙╙╙▀▀▀▀▀▀▀▀
13 | ╙▀▀██████R⌐
14 |
15 | */
16 | pragma solidity 0.8.16;
17 |
18 | contract DeltaCheckHarness {
19 | address owner;
20 | int256 priceCash;
21 |
22 | constructor() {
23 | owner = msg.sender;
24 | }
25 |
26 | function setPrice(int256 price_) public {
27 | priceCash = price_;
28 | }
29 |
30 | function setOwner(address owner_) external {
31 | require(msg.sender == owner);
32 | owner = owner_;
33 | }
34 |
35 | function getPriceData()
36 | public
37 | view
38 | returns (int256 price, uint256 timestamp)
39 | {
40 | price = priceCash;
41 | timestamp = block.timestamp - 60;
42 | }
43 |
44 | function getPrice() public view returns (uint256) {
45 | return uint256(priceCash);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/forge-tests/helpers/MockChainlinkPriceOracle.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: UNLICENSED
2 | pragma solidity 0.8.16;
3 |
4 | import "contracts/external/chainlink/AggregatorV3Interface.sol";
5 |
6 | contract MockChainlinkPriceOracle is AggregatorV3Interface {
7 | uint8 public decimals;
8 | string public description;
9 | uint80 roundId;
10 | int256 answer;
11 | uint256 startedAt;
12 | uint256 updatedAt;
13 | uint80 answeredInRound;
14 |
15 | constructor(uint8 _decimals, string memory _description) {
16 | decimals = _decimals;
17 | description = _description;
18 | }
19 |
20 | function version() external pure override returns (uint256) {
21 | return 1;
22 | }
23 |
24 | function setDecimals(uint8 _decimals) external {
25 | decimals = _decimals;
26 | }
27 |
28 | function setRoundData(
29 | uint80 _roundId,
30 | int256 _answer,
31 | uint256 _startedAt,
32 | uint256 _updatedAt,
33 | uint80 _answeredInRound
34 | ) external {
35 | roundId = _roundId;
36 | answer = _answer;
37 | startedAt = _startedAt;
38 | updatedAt = _updatedAt;
39 | answeredInRound = _answeredInRound;
40 | }
41 |
42 | function getRoundData(
43 | uint80
44 | ) external view override returns (uint80, int256, uint256, uint256, uint80) {
45 | return latestRoundData();
46 | }
47 |
48 | function latestRoundData()
49 | public
50 | view
51 | override
52 | returns (uint80, int256, uint256, uint256, uint80)
53 | {
54 | return (roundId, answer, startedAt, updatedAt, answeredInRound);
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/forge-tests/helpers/MockRWAOracle.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: UNLICENSED
2 | pragma solidity 0.8.16;
3 |
4 | import "contracts/interfaces/IRWAOracle.sol";
5 |
6 | contract MockRWAOracle is IRWAOracle {
7 | uint256 public price;
8 |
9 | constructor(uint256 _price) {
10 | price = _price;
11 | }
12 |
13 | function setPrice(uint256 _price) external {
14 | price = _price;
15 | }
16 |
17 | function getPriceData() external view override returns (uint256, uint256) {
18 | return (price, block.timestamp);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/forge-tests/helpers/MockSanctionsOracle.sol:
--------------------------------------------------------------------------------
1 | // SPDX-License-Identifier: UNLICENSED
2 | pragma solidity 0.8.16;
3 |
4 | import "contracts/external/chainalysis/ISanctionsList.sol";
5 |
6 | contract MockSanctionsOracle is ISanctionsList {
7 | address[] public sanctionedAddreses;
8 |
9 | function addAddress(address addr) public {
10 | sanctionedAddreses.push(addr);
11 | }
12 |
13 | function isSanctioned(address addr) external view override returns (bool) {
14 | for (uint256 i = 0; i < sanctionedAddreses.length; ++i) {
15 | if (sanctionedAddreses[i] == addr) {
16 | return true;
17 | }
18 | }
19 | return false;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/DestinationBridgeEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract DestinationBridgeEvents {
4 | event ApproverRemoved(address approver);
5 | event ApproverAdded(address approver);
6 | event ChainIdSupported(string srcChain, string approvedSource);
7 | event ThresholdSet(string chain, uint256[] amounts, uint256[] numOfApprovers);
8 | event ThresholdRemoved(uint256 chainId, uint256 index);
9 | event BridgeCompleted(address user, uint256 amount);
10 | event InstantMintLimitSet(uint256 instantMintLimit);
11 | event InstantRedemptionLimitSet(uint256 instantRedemptionLimit);
12 | event InstantMintLimitDurationSet(uint256 instantMintLimitDuration);
13 | event InstantRedemptionLimitDurationSet(uint256 redemptionLimitDuration);
14 | event Paused(address account);
15 | event Unpaused(address account);
16 | event MintLimitSet(uint256 mintLimit);
17 | event MintLimitDurationSet(uint256 instantMintLimitDuration);
18 | }
19 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/KYCRegistryClientEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract KYCRegistryClientEvents {
4 | event KYCRegistrySet(address oldRegistry, address newRegistry);
5 |
6 | event KYCRequirementGroupSet(
7 | uint256 oldRequirementGroup,
8 | uint256 newRequirementGroup
9 | );
10 | }
11 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/OMMFEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract OMMFEvents {
4 | event TransferShares(
5 | address indexed from,
6 | address indexed to,
7 | uint256 sharesValue
8 | );
9 |
10 | event Transfer(address indexed from, address indexed to, uint256 value);
11 |
12 | event SharesBurnt(
13 | address indexed account,
14 | uint256 preRebaseTokenAmount,
15 | uint256 postRebaseTokenAmount,
16 | uint256 sharesAmount
17 | );
18 |
19 | event TokensBurnt(address indexed account, uint256 tokensBurnt);
20 |
21 | event Approval(address indexed owner, address indexed spender, uint256 value);
22 | }
23 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/OMMFManagerEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract OMMFManagerEvents {
4 | event WrappedMintCompleted(
5 | address indexed user,
6 | bytes32 indexed depositId,
7 | uint256 rwaAmountOut,
8 | uint256 wRWAAmountOut,
9 | uint256 collateralAmountDeposited,
10 | uint256 exchangeRate
11 | );
12 |
13 | event WrappedRedemptionRequested(
14 | address indexed user,
15 | bytes32 indexed redemptionId,
16 | uint256 rwaAmountIn,
17 | uint256 wrappedCashAmountIn
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/RWAHubInstantMintEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract RWAHubInstantMintEvents {
4 | event InstantMintFeeSet(uint256 oldFee, uint256 newFee);
5 | event InstantRedemptionFeeSet(uint256 oldFee, uint256 newFee);
6 | event InstantMintCompleted(
7 | address indexed user,
8 | uint256 collateralAmountDeposited,
9 | uint256 collateralAmountAfterFees,
10 | uint256 feesInCollateral,
11 | uint256 rwaOwed,
12 | uint256 price
13 | );
14 | event InstantRedemptionCompleted(
15 | address indexed user,
16 | uint256 rwaAmountBurned,
17 | uint256 collateralAmountAfterFees,
18 | uint256 feesInCollateral,
19 | uint256 price
20 | );
21 | event InstantMintPaused(address caller);
22 | event InstantMintUnpaused(address caller);
23 | event InstantRedemptionPaused(address caller);
24 | event InstantRedemptionUnpaused(address caller);
25 | event PriceIdSetForInstantMint(uint256 priceId);
26 | event PriceIdSetForInstantRedemption(uint256 priceId);
27 | event InstantMintLimitSet(uint256 mintLimit);
28 | event InstantRedemptionLimitSet(uint256 RedemptionLimit);
29 | event InstantMintLimitDurationSet(uint256 mintLimitDuration);
30 | event InstantRedemptionLimitDurationSet(uint256 RedemptionLimitDuration);
31 | event InstantMintAssetManagerSet(
32 | address oldInstantMintAssetManager,
33 | address newInstantMintAssetManager
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/RWAHubNonStableInstantMintEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract RWAHubNonStableInstantMintEvents {
4 | event InstantMint(
5 | address indexed user,
6 | uint256 collateralAmountDeposited,
7 | uint256 collateralAmountAfterFees,
8 | uint256 feesInCollateral,
9 | uint256 rwaGiven,
10 | uint256 priceMinted,
11 | bytes32 depositId
12 | );
13 | event ExcessMintClaimed(
14 | address indexed user,
15 | uint256 rwaOwedAtSetPrice,
16 | uint256 rwaPreviouslyGiven,
17 | uint256 rwaExcessGiven,
18 | uint256 priceClaimed,
19 | bytes32 depositId
20 | );
21 | event InstantMintGivenOverriden(
22 | bytes32 indexed depositId,
23 | uint256 oldGivenAmt,
24 | uint256 newGivenAmt
25 | );
26 | event InstantMintAssetManagerSet(
27 | address oldInstantAssetManager,
28 | address newInstantAssetManager
29 | );
30 | event InstantMintAmountSet(
31 | uint256 oldInstantMintBps,
32 | uint256 newInstantMintBps
33 | );
34 | event InstantMintPaused(address caller);
35 | event InstantMintUnpaused(address caller);
36 | event ClaimExcessPaused(address caller);
37 | event ClaimExcessUnpaused(address caller);
38 | event InstantMintFeeSet(uint256 oldFee, uint256 newFee);
39 | event InstantMintLimitSet(uint256 mintLimit);
40 | event InstantMintLimitDurationSet(uint256 mintLimitDuration);
41 | }
42 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/RWAHubOffChainRedemptionsEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract RWAHubOffChainRedemptionsEvents {
4 | event RedemptionRequestedServicedOffChain(
5 | address indexed user,
6 | bytes32 indexed redemptionId,
7 | uint256 rwaTokenAmountIn,
8 | bytes32 offChainDestination
9 | );
10 | event OffChainRedemptionPaused(address caller);
11 | event OffChainRedemptionUnpaused(address caller);
12 | event OffChainRedemptionMinimumSet(uint256 oldMinimum, uint256 newMinimum);
13 | }
14 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/SourceBridgeEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract SourceBridgeEvents {
4 | event DestinationChainContractAddressSet(
5 | string indexed destinationChain,
6 | address contractAddress
7 | );
8 | event Paused(address account);
9 | event Unpaused(address account);
10 |
11 | // Axelar Events
12 | event ContractCall(
13 | address indexed sender,
14 | string destinationChain,
15 | string destinationContractAddress,
16 | bytes32 indexed payloadHash,
17 | bytes payload
18 | );
19 | event NativeGasPaidForContractCall(
20 | address indexed sourceAddress,
21 | string destinationChain,
22 | string destinationAddress,
23 | bytes32 indexed payloadHash,
24 | uint256 gasFeeAmount,
25 | address refundAddress
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/forge-tests/helpers/events/USDYManagerEvents.sol:
--------------------------------------------------------------------------------
1 | pragma solidity 0.8.16;
2 |
3 | contract USDYManagerEvents {
4 | event ClaimableTimestampSet(
5 | uint256 indexed claimDate,
6 | bytes32 indexed depositId
7 | );
8 | }
9 |
--------------------------------------------------------------------------------
/foundry.toml:
--------------------------------------------------------------------------------
1 | [profile.default]
2 | src = 'contracts'
3 | test = 'forge-tests'
4 | out = 'artifactsforge'
5 | cache = false
6 | gas_reports = ["*"]
7 | lib = ['forge-tests/lib']
8 | remappings = [
9 | 'eth-gas-reporter/=node_modules/eth-gas-reporter/',
10 | 'forge-tests/=forge-tests',
11 | 'lib/=lib/'
12 | ]
13 | fs_permissions = [{ access = "read", path = "./artifactsforge"}]
14 | libs = ["node_modules", "lib"]
15 |
16 | # See more config options https://github.com/gakonst/foundry/tree/master/config
17 |
--------------------------------------------------------------------------------
/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/code-423n4/2023-09-ondo/5aa5c88da07c7ab558ab1457a0ec5dd8689e2ba7/screenshot.png
--------------------------------------------------------------------------------