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