├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ └── feature_request.yml └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── README.md ├── crowdin.yml ├── package.json ├── public ├── 451.html ├── _redirects ├── favicon.ico ├── hero.png ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt ├── src ├── App.tsx ├── assets │ ├── copy.svg │ ├── copy_confirm.svg │ ├── documents │ │ ├── Umbrella_Protocol_Lite_Paper.pdf │ │ └── Umbrella_Protocol_Lite_Paper_CN.pdf │ ├── flags │ │ ├── ch-flag.png │ │ ├── de-flag.png │ │ ├── en-flag.png │ │ ├── es-flag.png │ │ ├── fr-flag.png │ │ ├── he-flag.png │ │ ├── it-flag.png │ │ ├── ja-flag.png │ │ ├── ko-flag.png │ │ ├── ro-flag.png │ │ ├── ru-flag.png │ │ └── vi-flag.png │ ├── fortmatic.png │ ├── locales │ │ ├── en.json │ │ └── zh.json │ ├── metamask-fox.svg │ ├── mofy.png │ ├── portis.png │ ├── wallet-connect.svg │ ├── yamdaohouse.png │ └── yampp.png ├── components │ ├── AddressButton │ │ ├── AddressButton.tsx │ │ └── index.ts │ ├── Bar │ │ ├── Bar.tsx │ │ └── index.ts │ ├── BoxWithDisplay │ │ ├── BoxWithDisplay.tsx │ │ └── index.ts │ ├── ClaimCard │ │ ├── ClaimCard.tsx │ │ └── index.ts │ ├── ConfirmTransactionModal │ │ ├── ConfirmTransactionModal.tsx │ │ └── index.ts │ ├── DarkModeSwitch │ │ ├── DarkModeSwitch.tsx │ │ └── index.ts │ ├── DegenerativeCard │ │ ├── DegenerativeCard.tsx │ │ └── index.ts │ ├── DelegateLP │ │ ├── DelegateLP.tsx │ │ └── index.ts │ ├── DelegateToken │ │ ├── DelegateToken.tsx │ │ └── index.ts │ ├── Dial │ │ ├── Dial.tsx │ │ └── index.ts │ ├── ExternalLink │ │ ├── ExternalLink.tsx │ │ └── index.ts │ ├── FancyValue │ │ ├── FancyValue.tsx │ │ └── index.ts │ ├── Footer │ │ ├── Footer.tsx │ │ ├── components │ │ │ └── Nav.tsx │ │ └── index.ts │ ├── Label │ │ ├── Label.tsx │ │ └── index.ts │ ├── LangSwitcher │ │ ├── LangSwitcher.tsx │ │ ├── index.css │ │ └── index.ts │ ├── Logo │ │ ├── Logo.tsx │ │ └── index.ts │ ├── MofyCard │ │ ├── MofyCard.tsx │ │ └── index.ts │ ├── Page │ │ ├── Page.tsx │ │ └── index.ts │ ├── PageHeader │ │ ├── PageHeader.tsx │ │ └── index.ts │ ├── ProjectCard │ │ ├── ProjectCard.tsx │ │ └── index.ts │ ├── RegistrationButton │ │ ├── RegistrationButton.tsx │ │ └── index.ts │ ├── SeparatorWithCSS │ │ ├── SeparatorWithCSS.tsx │ │ └── index.ts │ ├── Split │ │ ├── Split.tsx │ │ └── index.ts │ ├── StartFooter │ │ ├── StartFooter.tsx │ │ └── index.ts │ ├── StartPage │ │ ├── StartPage.tsx │ │ └── index.ts │ ├── StartPageHeader │ │ ├── StartPageHeader.tsx │ │ └── index.ts │ ├── StartSplit │ │ ├── StartSplit.tsx │ │ └── index.ts │ ├── StyledMenu │ │ └── index.tsx │ ├── StyledNoticeIcon │ │ ├── StyledNoticeIcon.tsx │ │ └── index.ts │ ├── TokenInput │ │ ├── TokenInput.tsx │ │ └── index.ts │ ├── TopBar │ │ ├── TopBar.tsx │ │ ├── components │ │ │ ├── Nav.tsx │ │ │ ├── StyledLink.tsx │ │ │ ├── StyledRouterLink.tsx │ │ │ └── WalletButton.tsx │ │ └── index.ts │ ├── UmbrellaCard │ │ ├── UmbrellaCard.tsx │ │ └── index.ts │ ├── UnlockWalletModal │ │ ├── UnlockWalletModal.tsx │ │ ├── components │ │ │ └── WalletProviderCard.tsx │ │ └── index.ts │ ├── Value │ │ ├── Value.tsx │ │ └── index.ts │ ├── ValueText │ │ ├── ValueText.tsx │ │ └── index.ts │ ├── WalletModal │ │ ├── WalletModal.tsx │ │ └── index.ts │ ├── YamLoader │ │ ├── YamLoader.tsx │ │ └── index.ts │ ├── YamReOrgCard │ │ ├── YamReOrgCard.tsx │ │ └── index.ts │ ├── YamTreasuriesCard │ │ ├── YamTreasuriesCard.tsx │ │ └── index.ts │ └── icons │ │ ├── CoinDeskIcon.tsx │ │ ├── CoinTelegraphIcon.tsx │ │ ├── ForbesIcon.tsx │ │ ├── Gizmodo.tsx │ │ ├── Menu.tsx │ │ ├── TheDefiantIcon.tsx │ │ └── TheRegisterIcon.tsx ├── constants │ ├── Footers.json │ ├── abi │ │ └── ERC20.json │ └── tokenAddresses.ts ├── contexts │ ├── Balances │ │ ├── Context.ts │ │ ├── Provider.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Farming │ │ ├── Context.ts │ │ ├── Provider.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Governance │ │ ├── Context.ts │ │ ├── Provider.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Migration │ │ ├── Context.ts │ │ ├── Provider.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Prices │ │ ├── PricesContext.ts │ │ ├── PricesProvider.tsx │ │ └── index.ts │ ├── Tvl │ │ ├── Context.ts │ │ ├── Provider.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Vesting │ │ ├── Context.ts │ │ ├── Provider.tsx │ │ ├── index.ts │ │ └── types.ts │ └── YamProvider │ │ ├── YamProvider.tsx │ │ └── index.ts ├── hooks │ ├── useAllowance.ts │ ├── useApproval.ts │ ├── useBalances.ts │ ├── useDashboard.ts │ ├── useENS.ts │ ├── useFarming.ts │ ├── useGovernance.ts │ ├── useLocalStorage.ts │ ├── useMigration.ts │ ├── useOnClickOutside.tsx │ ├── usePrices.ts │ ├── useSDK.ts │ ├── useTokenBalance.ts │ ├── useTreasury.ts │ ├── useTvl.ts │ ├── useVesting.ts │ └── useYam.ts ├── index.css ├── index.tsx ├── plugins │ └── i18n.ts ├── react-app-env.d.ts ├── serviceWorker.js ├── setupTests.js ├── types │ └── Charts.ts ├── utils │ ├── index.ts │ └── misc.ts ├── views │ ├── Addresses │ │ ├── Addresses.tsx │ │ └── index.ts │ ├── Claim │ │ ├── Claim.tsx │ │ └── index.ts │ ├── Contributor │ │ ├── Contributor.tsx │ │ └── index.ts │ ├── Dashboard │ │ ├── Dashboard.tsx │ │ ├── components │ │ │ ├── Asset.tsx │ │ │ ├── AssetsList.tsx │ │ │ ├── Charts.tsx │ │ │ └── TopCards.tsx │ │ └── index.ts │ ├── Delegate │ │ ├── Delegate.tsx │ │ └── index.ts │ ├── FAQ │ │ ├── FAQ.tsx │ │ ├── components │ │ │ └── Question.tsx │ │ └── index.ts │ ├── Farm │ │ ├── Farm.tsx │ │ ├── components │ │ │ ├── Harvest │ │ │ │ ├── Harvest.tsx │ │ │ │ └── index.ts │ │ │ ├── HarvestLPsNoticeYAMYUSD.tsx │ │ │ ├── PausedLPsNotice.tsx │ │ │ ├── ResumedLPsNotice.tsx │ │ │ └── Stake │ │ │ │ ├── Stake.tsx │ │ │ │ ├── components │ │ │ │ ├── StakeModal.tsx │ │ │ │ └── UnstakeModal.tsx │ │ │ │ └── index.ts │ │ └── index.ts │ ├── Governance │ │ ├── Governance.tsx │ │ ├── components │ │ │ ├── Proposal.tsx │ │ │ └── VoteModal.tsx │ │ └── index.ts │ ├── Home │ │ ├── Home.tsx │ │ ├── components │ │ │ ├── MigrationNotice.tsx │ │ │ ├── Rebase.tsx │ │ │ ├── RegisterVoteNotice.tsx │ │ │ ├── Stats.tsx │ │ │ ├── Treasury.tsx │ │ │ └── VestingNotice.tsx │ │ └── index.ts │ ├── Landings │ │ ├── Daohouse.tsx │ │ └── Umbrella.tsx │ ├── Migrate │ │ ├── Migrate.tsx │ │ ├── components │ │ │ ├── EndingMigrationNotice.tsx │ │ │ ├── MigrateCard.tsx │ │ │ └── VestingNotice.tsx │ │ └── index.ts │ ├── Projects │ │ ├── Projects.tsx │ │ └── index.ts │ ├── Redemption │ │ ├── Redemption.tsx │ │ └── index.ts │ ├── Registration │ │ ├── Registration.tsx │ │ ├── components │ │ │ └── RegisterNotice.tsx │ │ └── index.ts │ ├── Start │ │ ├── Start.tsx │ │ └── index.ts │ ├── TVL │ │ ├── TVL.tsx │ │ └── index.ts │ ├── TokenValues │ │ ├── TokenValues.tsx │ │ └── index.ts │ └── User │ │ ├── User.tsx │ │ └── index.ts ├── yam-sdk-files │ ├── dist │ │ ├── Yam.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── contracts │ │ │ │ ├── Governor.js │ │ │ │ ├── Redeemer.js │ │ │ │ └── Token.js │ │ │ └── types │ │ │ │ └── yam.t.js │ │ └── utils │ │ │ ├── abis │ │ │ ├── governor.json │ │ │ ├── incentivizer.json │ │ │ ├── migrator.json │ │ │ ├── redeemer.json │ │ │ ├── timelock.json │ │ │ └── yam.json │ │ │ ├── contracts.js │ │ │ ├── tokens.js │ │ │ └── utils.js │ └── file.txt └── yam-sdk │ ├── lib │ ├── Yam.js │ ├── clean_build │ │ └── contracts │ │ │ ├── Address.json │ │ │ ├── Babylonian.json │ │ │ ├── Context.json │ │ │ ├── DualGovernorAlpha.json │ │ │ ├── FixedPoint.json │ │ │ ├── GovernorAlpha.json │ │ │ ├── IERC20.json │ │ │ ├── IRewardDistributionRecipient.json │ │ │ ├── IndexStakingRewards.json │ │ │ ├── LPTokenWrapper.json │ │ │ ├── MasterChef.json │ │ │ ├── Math.json │ │ │ ├── Migrations.json │ │ │ ├── Migrator.json │ │ │ ├── OTC.json │ │ │ ├── Ownable.json │ │ │ ├── Rebaser.json │ │ │ ├── SafeERC20.json │ │ │ ├── SafeMath.json │ │ │ ├── SushiBarXSushi.json │ │ │ ├── SushiToken.json │ │ │ ├── SushiswapPool.json │ │ │ ├── Timelock.json │ │ │ ├── TimelockInterface.json │ │ │ ├── UniswapPair.json │ │ │ ├── UniswapV2OracleLibrary.json │ │ │ ├── VestingPool.json │ │ │ ├── YAM.json │ │ │ ├── YAMAMPLPool.json │ │ │ ├── YAMCOMPPool.json │ │ │ ├── YAMDelegate.json │ │ │ ├── YAMDelegate2.json │ │ │ ├── YAMDelegateInterface.json │ │ │ ├── YAMDelegationStorage.json │ │ │ ├── YAMDelegator.json │ │ │ ├── YAMDelegatorInterface.json │ │ │ ├── YAMDelegatorV3.json │ │ │ ├── YAMETHPool.json │ │ │ ├── YAMGovernanceStorage.json │ │ │ ├── YAMGovernanceToken.json │ │ │ ├── YAMIncentives.json │ │ │ ├── YAMIncentivizer.json │ │ │ ├── YAMIncentivizerOld.json │ │ │ ├── YAMIncentivizerWithVoting.json │ │ │ ├── YAMInterface.json │ │ │ ├── YAMLENDPool.json │ │ │ ├── YAMLINKPool.json │ │ │ ├── YAMMKRPool.json │ │ │ ├── YAMRebaser.json │ │ │ ├── YAMRebaser2.json │ │ │ ├── YAMReserve.json │ │ │ ├── YAMReserves.json │ │ │ ├── YAMReserves2.json │ │ │ ├── YAMSNXPool.json │ │ │ ├── YAMToken.json │ │ │ ├── YAMTokenInterface.json │ │ │ ├── YAMTokenStorage.json │ │ │ ├── YAMYFIPool.json │ │ │ ├── YAMv2.json │ │ │ └── YAMv2Migration.json │ ├── index.js │ ├── lib │ │ ├── BytesHelper.js │ │ ├── Expect.js │ │ ├── Helpers.js │ │ ├── accounts.js │ │ ├── constants.js │ │ ├── contracts.js │ │ ├── evm.js │ │ ├── snx.json │ │ ├── types.js │ │ ├── uni.json │ │ ├── uni2.json │ │ ├── uniR.json │ │ ├── unifact2.json │ │ ├── weth.json │ │ └── ycrv.json │ └── tests │ │ ├── EIP712.js │ │ ├── deployment.test.js │ │ ├── distribution.test.js │ │ ├── governance.test.js │ │ ├── governorAlpha.test.js │ │ ├── migrate.test.js │ │ ├── rebase.test.js │ │ ├── token.test.js │ │ └── token2.test.js │ └── utils │ └── index.js ├── tsconfig.json ├── typings └── index.d.ts └── yarn.lock /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: Create a bug report to help us improve 3 | title: "Bug " 4 | labels: ["bug"] 5 | body: 6 | - type: textarea 7 | id: bug-info 8 | attributes: 9 | label: What is the bug? 10 | description: A clear and concise description of what the bug is. 11 | placeholder: Tell us what you saw! 12 | validations: 13 | required: true 14 | - type: textarea 15 | id: screenshots 16 | attributes: 17 | label: Screenshots 18 | description: If applicable, add screenshots to help explain your problem. 19 | - type: textarea 20 | id: logs-output 21 | attributes: 22 | label: Logs Output 23 | description: Please paste any relevant logs output. 24 | render: shell 25 | - type: dropdown 26 | id: desktop-mobile 27 | attributes: 28 | label: Are you on desktop or mobile? 29 | options: 30 | - Desktop 31 | - Mobile 32 | validations: 33 | required: true 34 | - type: dropdown 35 | id: browsers 36 | attributes: 37 | label: What browsers are you using? 38 | multiple: true 39 | options: 40 | - Firefox 41 | - Chrome 42 | - Safari 43 | - Microsoft Edge 44 | - Other 45 | validations: 46 | required: true -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request 2 | description: Suggest an idea for this project 3 | title: "Request " 4 | labels: ["enhancement"] 5 | body: 6 | - type: textarea 7 | id: feature-info 8 | attributes: 9 | label: Describe your request 10 | description: A clear and concise description of what you like us to add. 11 | placeholder: Tell us about your idea! 12 | validations: 13 | required: true 14 | - type: textarea 15 | id: screenshots 16 | attributes: 17 | label: Screenshots 18 | validations: 19 | required: false -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Description of changes proposed in this pull request: 2 | - 3 | - 4 | 5 | ### Checks: 6 | * [ ] Have you followed the guidelines in our Contributing document? 7 | * [ ] Have you checked to ensure there aren't other open [Pull Requests](../../pulls) for the same update/change? 8 | 9 | 10 | 11 | ### New Feature Submission: 12 | * [ ] Have you successfully ran tests with your changes locally? 13 | * [ ] Have you lint your code locally prior to submission? 14 | 15 | ### Changes to Existing Features: 16 | * [ ] Have you added an explanation of what your changes do and why you'd like us to include them? 17 | * [ ] Have you written new tests for your core changes, if applicable? 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .vscode 8 | .idea 9 | 10 | # testing 11 | /coverage 12 | 13 | # production 14 | /build 15 | 16 | # misc 17 | .DS_Store 18 | .env.local 19 | .env.development.local 20 | .env.test.local 21 | .env.production.local 22 | .vscode 23 | .idea 24 | 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Yam.finance 🍠 2 | 3 | > The Yam core website application. 4 | 5 | # What is YAM? 6 | 7 | YAM is the governance token for the YAM protocol. A decentralized cryptocurrency with treasury managed by the community. The community can then use those funds via YAM governance to build out the protocol. 8 | 9 | ## Available at 10 | 11 | https://yam.finance/ - Live website 12 | ![Netlify Status](https://api.netlify.com/api/v1/badges/c6e1a55f-0f94-4b2d-937c-0749cf108ebd/deploy-status) 13 | 14 | https://develop.yam.finance/ - Devleopment builds 15 | ![Netlify Status](https://api.netlify.com/api/v1/badges/aeee282a-58a9-4cf7-8965-a9cafc836168/deploy-status) 16 | 17 | ## Developments 18 | 19 | **Install deps** 20 | 21 | ```sh 22 | yarn install 23 | ``` 24 | 25 | **Start the project** 26 | 27 | ```sh 28 | yarn start 29 | ``` 30 | 31 | ## Contributions 32 | 33 | If you are interested to contribute feel free to [open an issue](https://github.com/yam-finance/yam-www/issues) or [submit PR](https://github.com/yam-finance/yam-www/pulls) to the `develop` branch. If an issue has the tag `assigned` means it has already been assigned to someone. 34 | 35 | For any other questions or bugs that you like to submit please join [the chat](https://discord.gg/TgFpmDj) to speak about it. 36 | 37 | ## License 38 | 39 | [MIT](LICENSE) 40 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | preserve_hierarchy: true 2 | files: 3 | - source: /src/assets/locales/en.json 4 | translation: /src/assets/locales/%two_letters_code%.json 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "yam-www", 3 | "version": "0.1.0", 4 | "homepage": "./", 5 | "private": true, 6 | "scripts": { 7 | "start": "react-scripts start", 8 | "build": "CI= GENERATE_SOURCEMAP=false react-scripts build", 9 | "lint": "prettier --write \"**/*.+(js|jsx|ts|tsx|json|css)\" --print-width 150", 10 | "eslint": "eslint . --fix", 11 | "test": "react-scripts test", 12 | "eject": "react-scripts eject" 13 | }, 14 | "eslintConfig": { 15 | "extends": "react-app" 16 | }, 17 | "browserslist": { 18 | "production": [ 19 | ">0.2%", 20 | "not dead", 21 | "not op_mini all" 22 | ], 23 | "development": [ 24 | "last 1 chrome version", 25 | "last 1 firefox version", 26 | "last 1 safari version" 27 | ] 28 | }, 29 | "dependencies": { 30 | "@davatar/react": "^1.8.1", 31 | "@testing-library/jest-dom": "^4.2.4", 32 | "@testing-library/react": "^9.3.2", 33 | "@testing-library/user-event": "^7.1.2", 34 | "@types/numeral": "^0.0.28", 35 | "@types/react-countup": "^4.3.0", 36 | "@types/react-csv": "^1.1.1", 37 | "@types/request": "^2.48.5", 38 | "apexcharts": "^3.21.0", 39 | "bignumber.js": "^9.0.0", 40 | "ethers": "^5.5.2", 41 | "husky": "^4.3.0", 42 | "i18next": "^20.3.1", 43 | "i18next-browser-languagedetector": "^6.1.2", 44 | "lint-staged": "^10.5.0", 45 | "moment": "^2.29.1", 46 | "numeral": "^2.0.6", 47 | "prettier": "^2.1.2", 48 | "rc-progress": "^3.1.0", 49 | "react": "^16.13.1", 50 | "react-apexcharts": "^1.3.7", 51 | "react-countdown": "^2.2.1", 52 | "react-countup": "^4.3.3", 53 | "react-csv": "^2.0.3", 54 | "react-dom": "^16.13.1", 55 | "react-i18next": "^11.11.0", 56 | "react-neu": "^1.0.25", 57 | "react-router-dom": "^5.2.0", 58 | "react-scripts": "3.4.3", 59 | "react-tooltip": "^4.2.10", 60 | "request": "^2.88.2", 61 | "semantic-ui-css": "^2.4.1", 62 | "semantic-ui-react": "^2.0.1", 63 | "styled-components": "^5.2.0", 64 | "use-wallet": "^0.13.6", 65 | "web3": "1.2.11", 66 | "yam-sdk": "^0.0.16-alpha", 67 | "yam-sdk-dev": "^0.0.18-alpha" 68 | }, 69 | "devDependencies": { 70 | "@types/react-router-dom": "^5.1.5", 71 | "@types/styled-components": "^5.1.3", 72 | "@types/web3": "^1.2.2", 73 | "react-circular-progressbar": "^2.0.3", 74 | "typescript": "^3.9.7" 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /451.html 451! Country=by,cu,ir,iq,ci,lr,kp,sd,sy,zw 2 | /* /index.html 200 -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/public/favicon.ico -------------------------------------------------------------------------------- /public/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/public/hero.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 32 | YAM Finance 33 | 34 | 35 | 36 |
37 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/public/logo192.png -------------------------------------------------------------------------------- /public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/public/logo512.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/assets/copy.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /src/assets/copy_confirm.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/assets/documents/Umbrella_Protocol_Lite_Paper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/documents/Umbrella_Protocol_Lite_Paper.pdf -------------------------------------------------------------------------------- /src/assets/documents/Umbrella_Protocol_Lite_Paper_CN.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/documents/Umbrella_Protocol_Lite_Paper_CN.pdf -------------------------------------------------------------------------------- /src/assets/flags/ch-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/ch-flag.png -------------------------------------------------------------------------------- /src/assets/flags/de-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/de-flag.png -------------------------------------------------------------------------------- /src/assets/flags/en-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/en-flag.png -------------------------------------------------------------------------------- /src/assets/flags/es-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/es-flag.png -------------------------------------------------------------------------------- /src/assets/flags/fr-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/fr-flag.png -------------------------------------------------------------------------------- /src/assets/flags/he-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/he-flag.png -------------------------------------------------------------------------------- /src/assets/flags/it-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/it-flag.png -------------------------------------------------------------------------------- /src/assets/flags/ja-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/ja-flag.png -------------------------------------------------------------------------------- /src/assets/flags/ko-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/ko-flag.png -------------------------------------------------------------------------------- /src/assets/flags/ro-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/ro-flag.png -------------------------------------------------------------------------------- /src/assets/flags/ru-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/ru-flag.png -------------------------------------------------------------------------------- /src/assets/flags/vi-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/flags/vi-flag.png -------------------------------------------------------------------------------- /src/assets/fortmatic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/fortmatic.png -------------------------------------------------------------------------------- /src/assets/locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": "Hi", 3 | "bye": "Aurevoir", 4 | "asset-detail-expiry": "is a synthetic that will expire at", 5 | "testString": "This is a test string", 6 | "test": "Il s'agit d'une variable de test: {{testVariable}}" 7 | } 8 | -------------------------------------------------------------------------------- /src/assets/locales/zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "hello": "你好", 3 | "bye": "傲华", 4 | "asset-detail-expiry": "是一种合成物,将在", 5 | "testString": "This is a test string", 6 | "test": "这是一个测试变量: {{testVariable}}" 7 | } 8 | -------------------------------------------------------------------------------- /src/assets/metamask-fox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/mofy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/mofy.png -------------------------------------------------------------------------------- /src/assets/portis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/portis.png -------------------------------------------------------------------------------- /src/assets/wallet-connect.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | WalletConnect 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/assets/yamdaohouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/yamdaohouse.png -------------------------------------------------------------------------------- /src/assets/yampp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yam-finance/yam-www/1bdaca12a7997013e084d625a6f982b1e3d431ca/src/assets/yampp.png -------------------------------------------------------------------------------- /src/components/AddressButton/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./AddressButton"; 2 | -------------------------------------------------------------------------------- /src/components/Bar/Bar.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import styled from "styled-components"; 3 | import { useTheme } from "react-neu"; 4 | import numeral from "numeral"; 5 | import { useCountUp } from 'react-countup'; 6 | import { useEffect, useState } from "react"; 7 | interface BarProgressProps { 8 | value?: number; 9 | invert?: boolean; 10 | type?: "buffer" | "normal"; 11 | } 12 | 13 | const Bar: React.FC = ({ value, invert, type }) => { 14 | if (invert) { 15 | value = 100 - (value || 0); 16 | } 17 | const { darkMode } = useTheme(); 18 | const valueCountUp= useCountUp({ 19 | start: 0, 20 | end: value ? value: 0, 21 | formattingFn: (val) => val ? ` ${numeral(val).format("0")}` : "Loading ...", 22 | decimals: 0, 23 | duration: 1.3 24 | }); 25 | const [progressValue, setProgressValue] = useState(0); 26 | useEffect(() => { 27 | valueCountUp.update(value); 28 | setProgressValue(value? value: 0); 29 | },[value] ); 30 | 31 | return ( 32 | <> 33 | 34 | 35 | {valueCountUp.countUp}% 36 | 37 | 38 | ); 39 | }; 40 | 41 | interface StyledBarProps { 42 | darkMode?: boolean; 43 | } 44 | 45 | interface StyledBarProgressTextProps { 46 | darkMode?: boolean; 47 | } 48 | 49 | const StyledBar = styled.div` 50 | background: ${(props) => (props.darkMode ? props.theme.colors.grey[900] : props.theme.colors.grey[400])}; 51 | border-radius: 15px; 52 | position: relative; 53 | overflow: hidden; 54 | height: 2.8rem; 55 | width: 100%; 56 | `; 57 | 58 | const StyledBarInner = styled.div` 59 | background: ${(props) => props.theme.colors.primary.main}; 60 | border-radius: 15px; 61 | height: 100%; 62 | 63 | transition: 1s ease; 64 | transition-delay: 0.3s; 65 | `; 66 | 67 | const StyledBarProgressText = styled.div` 68 | cursor: default; 69 | position: relative; 70 | top: 0px; 71 | font-size: 24px; 72 | font-weight: 700; 73 | text-align: center; 74 | line-height: 46px; 75 | color: white; 76 | z-index: 90; 77 | opacity: 0.95; 78 | `; 79 | 80 | export default Bar; 81 | -------------------------------------------------------------------------------- /src/components/Bar/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./Bar"; 2 | -------------------------------------------------------------------------------- /src/components/BoxWithDisplay/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./BoxWithDisplay"; 2 | -------------------------------------------------------------------------------- /src/components/ClaimCard/ClaimCard.tsx: -------------------------------------------------------------------------------- 1 | import React, { useMemo } from "react"; 2 | 3 | import numeral from "numeral"; 4 | import { Box, Button, Card, CardActions, CardContent, CardIcon, Spacer } from "react-neu"; 5 | 6 | import Label from "components/Label"; 7 | import Value from "components/Value"; 8 | 9 | import useVesting from "hooks/useVesting"; 10 | 11 | const ClaimCard: React.FC = () => { 12 | const { isClaiming, onClaim, vestedBalance } = useVesting(); 13 | 14 | const vestingBalanceDisplayValue = useMemo(() => { 15 | if (vestedBalance) { 16 | return numeral(vestedBalance).format("0.00a"); 17 | } 18 | return "--"; 19 | }, [vestedBalance]); 20 | 21 | const ClaimButton = useMemo(() => { 22 | const hasVestedYams = vestedBalance && vestedBalance.toNumber() > 0; 23 | if (isClaiming) { 24 | return