├── .gitignore
├── README.md
├── nextep.rar
├── package-lock.json
├── package.json
├── public
├── fav.svg
├── favicon.ico
├── index.html
├── logo192.png
├── logo512.png
├── manifest.json
└── robots.txt
└── src
├── App.css
├── App.js
├── App.test.js
├── Assets
├── copy-white.png
├── copy.png
├── css
│ ├── app.css
│ ├── custom.css
│ └── mycss.css
├── france.png
├── images
│ ├── 825 (1).svg
│ ├── 825.png
│ ├── 825.svg
│ ├── Frame 1000001031.svg
│ ├── Rectangle 4374 (1).svg
│ ├── Rectangle 4374.svg
│ ├── Vector (3).svg
│ ├── Vector (4).svg
│ ├── Vector (5).svg
│ ├── Vector (6).svg
│ ├── Vector (7).svg
│ ├── Vector (8).svg
│ ├── arrow (8) 1.svg
│ ├── binance-coin-seeklogo.com.svg
│ ├── lettre n (1) 2.svg
│ ├── logo-1.png
│ ├── logo.png
│ ├── mail 1.svg
│ ├── solana-sol-logo 1.svg
│ ├── tether-usdt-logo.svg
│ ├── toggle.svg
│ └── website (4) 1.svg
├── loader.gif
└── usa.png
├── Components
├── customHooks
│ └── useDarkSide.js
├── global
│ ├── ConnectWalletButton.js
│ ├── Header.css
│ ├── Header.js
│ ├── Layout.css
│ ├── Layout.js
│ ├── Switcher.css
│ └── Switcher.js
└── sections
│ ├── Presale.css
│ └── Presale.js
├── const
└── index.js
├── context
└── index.js
├── contracts
├── contracts
│ ├── 4.json
│ └── 97.json
└── index.js
├── index.css
├── index.js
├── lib
└── chains.js
├── locales
├── en-US.json
└── fr-FR.json
├── logo.svg
├── reportWebVitals.js
├── setupTests.js
└── utils
└── index.js
/.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 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Getting Started with Create React App
2 |
3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
4 |
5 | ## Available Scripts
6 |
7 | In the project directory, you can run:
8 |
9 | ### `npm start`
10 |
11 | Runs the app in the development mode.\
12 | Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
13 |
14 | The page will reload when you make changes.\
15 | You may also see any lint errors in the console.
16 |
17 | ### `npm test`
18 |
19 | Launches the test runner in the interactive watch mode.\
20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
21 |
22 | ### `npm run build`
23 |
24 | Builds the app for production to the `build` folder.\
25 | It correctly bundles React in production mode and optimizes the build for the best performance.
26 |
27 | The build is minified and the filenames include the hashes.\
28 | Your app is ready to be deployed!
29 |
30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
31 |
32 | ### `npm run eject`
33 |
34 | **Note: this is a one-way operation. Once you `eject`, you can't go back!**
35 |
36 | If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
37 |
38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
39 |
40 | You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
41 |
42 | ## Learn More
43 |
44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
45 |
46 | To learn React, check out the [React documentation](https://reactjs.org/).
47 |
48 | ### Code Splitting
49 |
50 | This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
51 |
52 | ### Analyzing the Bundle Size
53 |
54 | This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
55 |
56 | ### Making a Progressive Web App
57 |
58 | This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
59 |
60 | ### Advanced Configuration
61 |
62 | This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
63 |
64 | ### Deployment
65 |
66 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
67 |
68 | ### `npm run build` fails to minify
69 |
70 | This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
71 |
--------------------------------------------------------------------------------
/nextep.rar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/nextep.rar
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nextep",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@coinbase/wallet-sdk": "^3.5.2",
7 | "@testing-library/jest-dom": "^5.16.5",
8 | "@testing-library/react": "^13.4.0",
9 | "@testing-library/user-event": "^13.5.0",
10 | "@walletconnect/web3-provider": "^1.8.0",
11 | "ethers": "^5.7.1",
12 | "react": "^18.2.0",
13 | "react-copy-to-clipboard": "^5.1.0",
14 | "react-dom": "^18.2.0",
15 | "react-notifications": "^1.7.4",
16 | "react-scripts": "^4.0.3",
17 | "react-toggle-dark-mode": "^1.1.0",
18 | "rsuite": "^5.18.0",
19 | "walletlink": "^2.5.0",
20 | "web-vitals": "^2.1.4",
21 | "web3modal": "^1.9.9"
22 | },
23 | "scripts": {
24 | "start": "react-scripts start",
25 | "build": "react-scripts build",
26 | "test": "react-scripts test",
27 | "eject": "react-scripts eject"
28 | },
29 | "eslintConfig": {
30 | "extends": [
31 | "react-app",
32 | "react-app/jest"
33 | ]
34 | },
35 | "browserslist": {
36 | "production": [
37 | ">0.2%",
38 | "not dead",
39 | "not op_mini all"
40 | ],
41 | "development": [
42 | "last 1 chrome version",
43 | "last 1 firefox version",
44 | "last 1 safari version"
45 | ]
46 | },
47 | "devDependencies": {
48 | "autoprefixer": "^10.4.8",
49 | "postcss": "^8.4.16",
50 | "tailwindcss": "^3.1.8"
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
15 |
16 |
25 |
26 |
27 |
29 | Nextep
30 |
31 |
32 |
33 |
34 |
35 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/public/logo192.png
--------------------------------------------------------------------------------
/public/logo512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/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/App.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-size: 16pxpx !important;
3 | }
4 |
5 | .primary-bg {
6 | background: #C629EC;
7 | }
8 |
9 | .site-grey-color {
10 | color: #869091;
11 | }
--------------------------------------------------------------------------------
/src/App.js:
--------------------------------------------------------------------------------
1 |
2 | import './App.css';
3 | import Layout from './Components/global/Layout';
4 | import { NotificationContainer } from "react-notifications";
5 | import 'react-notifications/lib/notifications.css';
6 | import BlockchainProvider from "./context";
7 | // import { Route, BrowserRouter } from 'react-router-dom';
8 | import "./Assets/css/app.css"
9 | import "./Assets/css/custom.css"
10 | import "./Assets/css/mycss.css"
11 | function App() {
12 | return (
13 | <>
14 |
15 |
16 |
17 |
18 | >
19 | );
20 | }
21 |
22 | export default App;
23 |
--------------------------------------------------------------------------------
/src/App.test.js:
--------------------------------------------------------------------------------
1 | import { render, screen } from '@testing-library/react';
2 | import App from './App';
3 |
4 | test('renders learn react link', () => {
5 | render();
6 | const linkElement = screen.getByText(/learn react/i);
7 | expect(linkElement).toBeInTheDocument();
8 | });
9 |
--------------------------------------------------------------------------------
/src/Assets/copy-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/copy-white.png
--------------------------------------------------------------------------------
/src/Assets/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/copy.png
--------------------------------------------------------------------------------
/src/Assets/france.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/france.png
--------------------------------------------------------------------------------
/src/Assets/images/825 (1).svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
29 |
--------------------------------------------------------------------------------
/src/Assets/images/825.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/images/825.png
--------------------------------------------------------------------------------
/src/Assets/images/825.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
29 |
--------------------------------------------------------------------------------
/src/Assets/images/Frame 1000001031.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/src/Assets/images/Vector (3).svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/Vector (4).svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/Vector (5).svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/Vector (6).svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/Vector (7).svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/Vector (8).svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/arrow (8) 1.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/Assets/images/binance-coin-seeklogo.com.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Assets/images/logo-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/images/logo-1.png
--------------------------------------------------------------------------------
/src/Assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/images/logo.png
--------------------------------------------------------------------------------
/src/Assets/images/mail 1.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/Assets/images/solana-sol-logo 1.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/Assets/images/tether-usdt-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Assets/images/toggle.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/src/Assets/images/website (4) 1.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/src/Assets/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/loader.gif
--------------------------------------------------------------------------------
/src/Assets/usa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/newstable/nextep-frontend/74421c33eb3cfd9e96bfeabb20a4a20a8d40b26c/src/Assets/usa.png
--------------------------------------------------------------------------------
/src/Components/customHooks/useDarkSide.js:
--------------------------------------------------------------------------------
1 | import { useEffect, useState } from "react";
2 |
3 | export default function useDarkSide() {
4 | const [theme, setTheme] = useState(localStorage.theme || "light")
5 | const colorTheme = theme === 'dark' ? 'light' : 'dark';
6 |
7 | useEffect(() => {
8 | const root = window.document.documentElement;
9 | root.classList.remove(colorTheme);
10 | root.classList.add(theme);
11 |
12 | localStorage.setItem('theme', theme);
13 | }, [theme, colorTheme])
14 |
15 | return [colorTheme, setTheme];
16 | }
--------------------------------------------------------------------------------
/src/Components/global/ConnectWalletButton.js:
--------------------------------------------------------------------------------
1 | import Web3Modal from "web3modal";
2 | import { ethers } from "ethers";
3 | import { providerOptions } from "../../const";
4 | import { useEffect, useState } from "react";
5 | import { toHex } from "../../utils";
6 | import Wallet from "../../Assets/images/Vector (8).svg";
7 | import { useBlockchainContext } from '../../context';
8 | const web3Modal = new Web3Modal({
9 | cacheProvider: true, // optional
10 | providerOptions, // required
11 | });
12 |
13 | const ConnectButton = ({ styleNames, img, styleP }) => {
14 | const [account, setAccount] = useState("");
15 | const [library, setLibrary] = useState();
16 | const [chainId, setChainId] = useState();
17 |
18 | const [state, { dispatch }] = useBlockchainContext();
19 | var styledAddress = account
20 | ? account.slice(0, 4) + "..." + account.slice(-4)
21 | : "";
22 |
23 | const connectWallet = async () => {
24 | try {
25 | const provider = await web3Modal.connect();
26 | provider.on("accountsChanged", async (accounts) => {
27 | if (accounts.length == 0) {
28 | await web3Modal.clearCachedProvider();
29 | refreshState();
30 | }
31 | })
32 | const library = new ethers.providers.Web3Provider(provider);
33 | const accounts = await library.listAccounts();
34 | const network = await library.getNetwork();
35 | dispatch({
36 | type: "provider",
37 | payload: library
38 | })
39 | setLibrary(library);
40 | if (accounts) {
41 | dispatch({
42 | type: "address",
43 | payload: accounts[0]
44 | })
45 | setAccount(accounts[0]);
46 | }
47 | setChainId(network.chainId);
48 | } catch (error) {
49 | console.log(error);
50 | }
51 | };
52 |
53 | useEffect(() => {
54 | if (chainId != "97") {
55 | switchNetwork("97");
56 | }
57 | }, [account])
58 |
59 | useEffect(() => {
60 | setAccount(state.address);
61 | }, [state.address])
62 |
63 | const switchNetwork = async (network) => {
64 | try {
65 | await library.provider.request({
66 | method: "wallet_switchEthereumChain",
67 | params: [{ chainId: toHex(network) }],
68 | });
69 | } catch (switchError) {
70 | if (switchError.code === 4902) {
71 | try {
72 | await library.provider.request({
73 | method: "wallet_addEthereumChain",
74 | params: [
75 | {
76 | chainId: toHex("137"),
77 | chainName: "Polygon",
78 | rpcUrls: ["https://polygon-rpc.com/"],
79 | blockExplorerUrls: ["https://polygonscan.com/"],
80 | },
81 | ],
82 | });
83 | } catch (addError) {
84 | throw addError;
85 | }
86 | }
87 | }
88 | };
89 |
90 | useEffect(() => {
91 | if (web3Modal.cachedProvider) {
92 | connectWallet();
93 | }
94 | }, []);
95 |
96 | const refreshState = () => {
97 | setAccount("");
98 | };
99 |
100 | const disconnect = async () => {
101 | await web3Modal.clearCachedProvider();
102 | dispatch({
103 | type: "address",
104 | payload: ""
105 | })
106 | refreshState();
107 | }
108 |
109 | return (
110 | <>
111 | {!account ? (
112 |
124 | ) : (
125 |
136 | )}
137 | >
138 | )
139 | }
140 |
141 | export default ConnectButton;
--------------------------------------------------------------------------------
/src/Components/global/Header.css:
--------------------------------------------------------------------------------
1 | /* 👏🏻Good morning.
*/
2 |
3 | .good-morning {
4 | font-size: 22px;
5 | color: #0f0f0f;
6 | }
7 |
8 | .dark .good-morning {
9 | color: #fff !important;
10 | }
11 |
12 | .nextep-font {
13 | font-size: 20px;
14 | color: #0f0f0f;
15 | margin-left: 8px;
16 | }
17 |
18 | .dark .nextep-font {
19 | color: #FDFDFD !important;
20 | }
21 |
22 | .wallet-btn {
23 | background: #C629EC;
24 | padding: 15px 18px;
25 | border-radius: 5px;
26 | }
27 |
28 | .text-1 {
29 | color: #C629EC;
30 | }
31 |
32 | .nextep-h1 {
33 | line-height: 63px !important;
34 | }
35 |
36 | .wallet-p {
37 | margin-bottom: 0;
38 | }
39 |
40 | @media (max-width:600px) {
41 | .wallet-btn {
42 | border-radius: 50%;
43 | padding: 12px 11px;
44 | }
45 | }
--------------------------------------------------------------------------------
/src/Components/global/Header.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import Wallet from "../../Assets/images/Vector (8).svg";
3 | import logo from "../../Assets/images/logo.png";
4 | import ConnectWalletButton from "./ConnectWalletButton";
5 | import { useBlockchainContext } from '../../context';
6 |
7 | import './Header.css';
8 | export const Header = () => {
9 | const [state] = useBlockchainContext();
10 | const { L } = state;
11 | return (
12 | <>
13 |
14 |
17 |
18 |
21 |
22 |
23 | {/*

*/}
28 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | >
39 | );
40 | };
41 |
--------------------------------------------------------------------------------
/src/Components/global/Layout.css:
--------------------------------------------------------------------------------
1 | .layout {
2 | background: #f3f3f3;
3 | height: 100vh;
4 | }
5 |
6 | .dark .layout {
7 | height: 100vh;
8 | background: #0F0F0F !important;
9 | }
10 |
11 | .dark .layout_ {
12 | background: #181818 !important;
13 | }
14 |
15 | .padding-top-11 {
16 | padding-top: 45px;
17 | }
18 |
19 |
20 | .width-64 {
21 | width: 220px;
22 | }
23 |
24 | .rotate-360 {
25 | transform: translate(0, 0) rotate(360deg) skewX(0) skewY(0) scaleX(1) scaleY(1);
26 | }
27 |
28 | .toggle {
29 | /* dark:filter-none hidden fixed cursor-pointer left-[28px] top-[46px] z-[3] md:block sm:top-[53px] */
30 | display: none;
31 | position: fixed;
32 | cursor: pointer;
33 | left: 28px;
34 | top: 46px;
35 | z-index: 11;
36 |
37 | }
38 |
39 | .dark .toggle {
40 | filter: none !important;
41 | }
42 |
43 | .z-10 {
44 | z-index: 10;
45 | }
46 |
47 | .next-font {
48 | color: #0F0F0F;
49 | }
50 |
51 | .dark .next-font {
52 | color: #FDFDFD;
53 | }
54 |
55 | .p-7 {
56 | padding: 1.75rem;
57 | }
58 |
59 | .language-p-3 {
60 | padding: 0.3rem 20px;
61 | }
62 |
63 | .padding-5 {
64 | padding: 38px 26px 0;
65 | }
66 |
67 | .padding-lr-5 {
68 | padding: 0 26px;
69 | }
70 |
71 | .padding-tm-5 {
72 | padding: 38px 0;
73 | }
74 |
75 | .my-h1 {
76 | line-height: 62px !important;
77 | }
78 |
79 | .multilanguage {
80 | position: absolute;
81 | bottom: 80px;
82 | width: 74%;
83 | }
84 |
85 | .multilanguage li {
86 | background: #e7e7e7;
87 | }
88 |
89 | .dark .multilanguage li {
90 | background: #0f0f0f;
91 | }
92 |
93 | @media (max-width:767px) {
94 | .multilanguage {
95 | position: relative;
96 | width: 100%;
97 | bottom: 5px;
98 | }
99 | }
--------------------------------------------------------------------------------
/src/Components/global/Layout.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from "react";
2 | import { useBlockchainContext } from '../../context';
3 | import Switcher from "./Switcher";
4 | import logo from "../../Assets/images/logo.png";
5 | import iconMigration from "../../Assets/images/Vector (3).svg";
6 | import iconArow from "../../Assets/images/arrow (8) 1.svg";
7 | import toggle from "../../Assets/images/toggle.svg";
8 |
9 | import france from "../../Assets/france.png";
10 | import usa from "../../Assets/usa.png";
11 |
12 | import { Presale } from "../sections/Presale";
13 | import { Header } from "./Header";
14 | import './Layout.css';
15 |
16 | const locales = {
17 | "usa": require('../../locales/en-US.json'),
18 | "france": require('../../locales/fr-FR.json'),
19 | };
20 |
21 | const Layout = () => {
22 | const [open, setOpen] = useState(true);
23 | const [presale, setPresaleActive] = useState(true);
24 | const [migration, setMigrationActive] = useState(false);
25 | const [isEng, setIsEng] = useState(true);
26 |
27 | const [state, { dispatch }] = useBlockchainContext();
28 | const { L } = state;
29 |
30 |
31 | const [screenSize, getDimension] = useState(window.innerWidth);
32 | const setDimension = () => {
33 | getDimension(window.innerWidth)
34 | }
35 |
36 | useEffect(() => {
37 | window.addEventListener('resize', setDimension);
38 | if (window.innerWidth < 768) {
39 | setOpen(false);
40 | } else {
41 | setOpen(true);
42 | }
43 | }, [screenSize])
44 |
45 | useEffect(() => {
46 | if (isEng) {
47 | dispatch({
48 | type: "L",
49 | payload: locales["usa"]
50 | })
51 | } else {
52 | dispatch({
53 | type: "L",
54 | payload: locales["france"]
55 | })
56 | }
57 | }, [isEng])
58 | useEffect(() => {
59 | window.localStorage.setItem('lang', 'usa')
60 | }, [])
61 | const activePresale = () => {
62 | setPresaleActive(true);
63 | setMigrationActive(false);
64 | };
65 |
66 | const activeMigration = () => {
67 | setPresaleActive(false);
68 | setMigrationActive(true);
69 | };
70 |
71 | return (
72 |
73 |
77 |

setOpen(!open)}
81 | alt="error"
82 | />
83 |
84 |

90 | {/*
94 | Nextep
95 |
*/}
96 |
97 |
98 | - activePresale()}
100 | className={`mt-10 flex rounded-md py-3 px-2 mb-5 cursor-pointer items-center
101 | ${presale ? "primary-bg white" : ""} ${open ? "pl-3" : "px-0"
102 | }`}
103 | >
104 |
105 |
110 | {/* Presale */}
111 | {L['presale']}
112 |
113 |
114 |
115 |
116 | {/* - activeMigration()}
118 | className={`flex rounded-md py-3 mb-5 cursor-pointer items-center
119 | ${migration ? "primary-bg white" : ""} ${open ? "pl-3" : "pl-0"
120 | }`}
121 | >
122 |
123 |
128 | Migration
129 |
130 | */}
131 |
132 |
133 |
setIsEng(true)}>
134 |

135 |
136 |
137 |
138 |
139 |
setIsEng(false)}>
140 |

141 |
142 |
143 | {/*
144 | - setIsEng(!isEng)}
146 | className={`mt-10 flex rounded-md mb-5 cursor-pointer items-center multilanguage-contianer`}
147 | >
148 | {isEng ?
149 |
150 | :
151 | < img src={france} style={{ width: '30px', height: '30px' }} alt="error" />
152 | }
153 |
154 |
*/}
155 |
156 |
157 |
161 |
162 | );
163 | };
164 | export default Layout;
165 |
--------------------------------------------------------------------------------
/src/Components/global/Switcher.css:
--------------------------------------------------------------------------------
1 | .switcher {
2 | /* absolute w-[74%] bottom-[38px] */
3 | position: absolute;
4 | bottom: 38px;
5 | width: 74%;
6 | }
7 |
8 | .switcher-style-1 {
9 | padding: 0 25px;
10 | }
11 |
12 | .dark .dark\:switcher-style-1 {
13 | padding: 0;
14 | }
15 |
16 | .width-1 {
17 | width: 3px;
18 | }
19 |
20 | .switcher-body {
21 | background: #e9e9e9;
22 | }
23 |
24 | .dark .switcher-body {
25 | background: #232323 !important;
26 | }
27 |
28 | .swithcer-ele {
29 | background: #808080;
30 | }
31 |
32 | .dark .swithcer-ele {
33 | background: rgb(131, 131, 131) !important;
34 | }
35 |
36 | .multilanguage-contianer {
37 | height: 50px;
38 | padding-left: 15px;
39 | padding-right: 15px;
40 | }
41 |
42 | @media (max-width:767px) {
43 | .switcher {
44 | position: relative;
45 | width: 100%;
46 | bottom: -15px;
47 | }
48 | }
--------------------------------------------------------------------------------
/src/Components/global/Switcher.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import useDarkSide from "../customHooks/useDarkSide";
3 | import Dark from "../../Assets/images/Vector (5).svg";
4 | import Light from "../../Assets/images/Vector (6).svg";
5 | import './Switcher.css';
6 |
7 | export default function Switcher({ open }) {
8 | const [colorTheme, setTheme] = useDarkSide();
9 | const [darkSide, setDarkSide] = useState(
10 | colorTheme === "light" ? true : false
11 | );
12 |
13 | const toggleDarkMode = (checked) => {
14 | setTheme(colorTheme);
15 | setDarkSide(checked);
16 | };
17 |
18 | return (
19 | <>
20 |
21 |
22 |
toggleDarkMode(true)}>
23 |

24 |
25 |
26 |
27 |
28 |
toggleDarkMode(false)}>
29 |

30 |
31 |
32 |
33 | >
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/src/Components/sections/Presale.css:
--------------------------------------------------------------------------------
1 | .presale-card {
2 | display: flex;
3 | justify-content: center;
4 | align-items: center;
5 | height: 90%;
6 | }
7 |
8 | .px-8 {
9 | padding-left: 2rem;
10 | padding-right: 2rem;
11 | }
12 |
13 | .py-7 {
14 | padding-top: 1.75rem;
15 | padding-bottom: 1.75rem;
16 | }
17 |
18 | .rounded-3xl {
19 | border-radius: 20px;
20 | }
21 |
22 | .border-black {
23 | --tw-border-opacity: 1;
24 | border-color: rgba(150, 150, 150, var(--tw-border-opacity));
25 | }
26 |
27 | .display-center {
28 | display: flex;
29 | justify-content: center;
30 | align-items: center;
31 | }
32 |
33 | .label-style-1 {
34 | margin: 0;
35 | }
36 |
37 | .pading-3 {
38 | padding: 15px;
39 | }
40 |
41 | .dark .dark\:border-white {
42 | --tw-border-opacity: 1;
43 | border-color: rgba(255, 255, 255, var(--tw-border-opacity));
44 | }
45 |
46 | .p-21 {
47 | padding: 0 21px;
48 | }
49 |
50 | .w-100 {
51 | width: 473px;
52 | }
53 |
54 | .text-color-1 {
55 | color: #575757;
56 | }
57 |
58 | .bg-color-1 {
59 | background-color: rgb(231, 231, 231) !important;
60 | }
61 |
62 | .bg-dropdown-1 {
63 | background-color: transparent;
64 | }
65 |
66 | .outline-style-1 {
67 | border: none;
68 | outline-width: 0;
69 | }
70 |
71 | .rs-dropdown-menu {
72 | border-radius: 0 !important;
73 | }
74 |
75 | .max-btn {
76 | border: 1px solid #575757;
77 | border-radius: 40px;
78 | padding: 2px 7px;
79 | font-weight: 700;
80 | margin-bottom: 5px;
81 | }
82 |
83 | .dark .dark\:.max-btn {
84 | border: 1px solid #a7a7a7;
85 | border-radius: 40px;
86 | padding: 2px 7px;
87 | font-weight: 700;
88 | margin-bottom: 5px;
89 | }
90 |
91 | .outline-style-1:focus {
92 | outline: none !important;
93 | box-shadow: none !important;
94 | }
95 |
96 | .mg-style-0 {
97 | margin: 0;
98 | }
99 |
100 | .width-60 {
101 | width: 235px;
102 | }
103 |
104 | .padding-9 {
105 | padding: 15px 34px;
106 | }
107 |
108 | .brightness-0 {
109 | filter: brightness(0);
110 | }
111 |
112 | /* .sm\:mb-4 {
113 | margin-bottom: 1rem;
114 | }
115 |
116 | .sm\:mr-0 {
117 | margin-right: 0 !important;
118 | }
119 |
120 | .sm\:w-full {
121 | width: 100%;
122 | } */
123 |
124 | .filter-none {
125 | filter: none;
126 | }
127 |
128 | .flex-center {
129 | display: flex;
130 | justify-content: center;
131 | align-items: center;
132 | }
133 |
134 | @media (width:640) {
135 | .width-60 {
136 | width: 100% !important;
137 | }
138 | }
--------------------------------------------------------------------------------
/src/Components/sections/Presale.js:
--------------------------------------------------------------------------------
1 |
2 | import React, { useEffect, useState } from "react";
3 | // import logo from "../../Assets/images/";
4 | import Img from "../../Assets/images/Rectangle 4374.svg";
5 | import CXE from "../../Assets/images/logo-1.png";
6 | import { ReactComponent as Solana } from "../../Assets/images/solana-sol-logo 1.svg";
7 | import Dex from "../../Assets/images/Frame 1000001031.svg";
8 | import Crypto from "../../Assets/images/website (4) 1.svg";
9 | import Mail from "../../Assets/images/mail 1.svg";
10 | import Dropdown from "rsuite/Dropdown";
11 | import "rsuite/dist/rsuite.min.css";
12 | import USDT from "../../Assets/images/tether-usdt-logo.svg";
13 | import NextBnB from "../../Assets/images/binance-coin-seeklogo.com.svg";
14 | import { useBlockchainContext } from '../../context';
15 | import ConnectButton from "../global/ConnectWalletButton";
16 | import { NotificationManager } from "react-notifications";
17 | import './Presale.css';
18 | import { CopyToClipboard } from 'react-copy-to-clipboard';
19 | import Loading from "../../Assets/loader.gif";
20 | import Copy from "../../Assets/copy.png";
21 | import Copy_white from "../../Assets/copy-white.png";
22 | const addresses = [
23 | "0x78867BbEeF44f2326bF8DDd1941a4439382EF2A7",
24 | "0x7ef95a0FEE0Dd31b22626fA2e10Ee6A223F8a684"
25 | ]
26 |
27 | export const Presale = ({ migration }) => {
28 | const [state, { dispatch, buy }] = useBlockchainContext();
29 | const [receive, setRecieveValue] = useState(0);
30 | const [pay, setPayValue] = useState(0);
31 | const [item, setItemActive] = useState(false);
32 | const { address, tokenAddress, amount, cxsAmount, L } = state;
33 | const [copied, setCopied] = useState(false);
34 |
35 | const onReceiveChange = (e) => {
36 | setRecieveValue(e);
37 | setPayValue(e * 1000);
38 | };
39 |
40 | const onPayChange = (e) => {
41 | setPayValue(e.target.value);
42 | setRecieveValue(e.target.value / 1000);
43 | };
44 |
45 | useEffect(() => {
46 | if (copied) {
47 | NotificationManager.success("Successfully Copied!", "Success");
48 | setTimeout(() => {
49 | setCopied(false);
50 | }, 2000);
51 | }
52 | }, [copied])
53 |
54 | const onBuy = async () => {
55 | await buy(receive);
56 | }
57 |
58 | // useEffect(() => {
59 | // pay = receive * 10;
60 | // }, [receive])
61 |
62 | const selectedMenu = (bool, num) => {
63 | setItemActive(bool);
64 | dispatch({
65 | type: "tokenAddress",
66 | payload: addresses[num]
67 | })
68 | };
69 |
70 | return (
71 |
72 |
73 |
74 |
75 |
76 | {/* Buy CXS Coin */}
77 | {L['buy_cxs']}
78 |
79 |
80 | {/* Select wallet */}
81 | {L['select_wallet']}
82 |
83 |
setCopied(true)} text={address ? address : L["connectwallet"]}>
84 |
85 |
86 | {/*

*/}
87 |
88 |
92 |
93 |
94 | {address ? address.slice(0, 8) + "..." + address.slice(address.length - 8, address) : L["connectwallet"]}
95 |
96 |

97 |

98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | {/* You Pay */}
108 | {L['you_pay']}
109 |
110 |
{L['my_balance']} : {amount ? amount.toFixed(0) : 0}
111 |
112 |
113 |
114 |
115 |
116 |
117 | onReceiveChange(e.target.value)}
119 | value={receive}
120 | type="text"
121 | onKeyPress={(event) => {
122 | if (!/[0-9]/.test(event.key)) {
123 | event.preventDefault();
124 | }
125 | }}
126 | className="outline-style-1 font-inter text-base text-color-1 bg-color-1 dark:bg-black-1 sm:w-[100%]"
127 | />
128 |
129 |
130 |
134 | {item ? (
135 |
142 | ) : (
143 |

148 | )
149 | }
150 | >
151 |
selectedMenu(false, 0)}
153 | icon={}
154 | >
155 | BUSD
156 |
157 |
158 | ) : (
159 |
166 | ) : (
167 |
168 | )
169 | }
170 | >
171 |
selectedMenu(true, 1)}
173 | icon={
174 |
179 | }
180 | >
181 | USDT
182 |
183 |
184 | )}
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 | {/* You receive */}
193 | {L['receive']}
194 |
195 |
{L['cxs_bal']} : {cxsAmount ? cxsAmount.toFixed(0) : 0}
196 |
197 |
198 |
199 |
200 | onPayChange(e)}
202 | value={pay}
203 | type="text"
204 | onKeyPress={(event) => {
205 | if (!/[0-9]/.test(event.key)) {
206 | event.preventDefault();
207 | }
208 | }}
209 | className="outline-style-1 font-inter text-base text-color-1 dark:text-slate-100 bg-color-1 dark:bg-black-1 sm:w-[100%]"
210 | />
211 |
212 |
213 |
214 |

215 |
216 | {migration ? "Nextep Nxchain" : "CXS"}
217 |
218 |
219 |
220 |
221 |
222 |
223 | {address ?
224 |
228 | :
229 |
230 |
231 |
232 | }
233 |
234 |
235 |
236 |
237 |
296 |
297 |
298 | );
299 | };
300 |
--------------------------------------------------------------------------------
/src/const/index.js:
--------------------------------------------------------------------------------
1 | import WalletConnect from "@walletconnect/web3-provider";
2 | import CoinbaseWalletSDK from "@coinbase/wallet-sdk";
3 | // import Portis from "@portis/web3";
4 | // import Fortmatic from "fortmatic";
5 | // import Squarelink from "squarelink";
6 |
7 | export const providerOptions = {
8 | walletlink: {
9 | package: CoinbaseWalletSDK, // Required
10 | options: {
11 | appName: "Web 3 Modal Demo", // Required
12 | infuraId: "9f8f5ec266c54f85aa9e66fbe230b077", // Required unless you provide a JSON RPC url; see `rpc` below
13 | },
14 | },
15 | walletconnect: {
16 | package: WalletConnect, // required
17 | options: {
18 | infuraId: "9f8f5ec266c54f85aa9e66fbe230b077", // required
19 | },
20 | },
21 | };
22 |
--------------------------------------------------------------------------------
/src/context/index.js:
--------------------------------------------------------------------------------
1 | import React, {
2 | createContext,
3 | useContext,
4 | useReducer,
5 | useMemo,
6 | useCallback,
7 | useEffect,
8 | } from "react";
9 | import { ethers } from "ethers";
10 | import {
11 | providers, ERCContract, presaleContract, Contrats
12 | } from "../contracts";
13 |
14 | import { delay, handleAlert, toBigNum, fromBigNum } from "../utils";
15 | import { NotificationManager } from "react-notifications";
16 |
17 | const locales = {
18 | "usa": require('../locales/en-US.json'),
19 | "france": require('../locales/fr-FR.json'),
20 | };
21 |
22 | const BlockchainContext = createContext();
23 |
24 | export function useBlockchainContext() {
25 | return useContext(BlockchainContext);
26 | }
27 |
28 | function reducer(state, { type, payload }) {
29 | return {
30 | ...state,
31 | [type]: payload,
32 | };
33 | }
34 |
35 |
36 | const INIT_STATE = {
37 | lang: "usa",
38 | L: locales["usa"],
39 | signer: "",
40 | amount: 0,
41 | cxsAmount: 0,
42 | provider: null,
43 | web3Provider: "",
44 | address: '',
45 | chainId: '',
46 | balance: 0,
47 | tokenAddress: "0x78867BbEeF44f2326bF8DDd1941a4439382EF2A7",
48 | contract: null,
49 | myBalance: 0,
50 | };
51 |
52 | export default function Provider({ children }) {
53 | const [state, dispatch] = useReducer(reducer, INIT_STATE);
54 |
55 | useEffect(() => {
56 | if (state.address == "") {
57 | dispatch({
58 | type: "cxsAmount",
59 | payload: 0
60 | })
61 | } else {
62 | setCXSAmount();
63 | }
64 | }, [state.address])
65 |
66 | const setCXSAmount = async () => {
67 | var contract = ERCContract("0xFd9Fd678C8EF9a271862edCFc0402B38B665Af69");
68 | const myBalance = fromBigNum(await contract.balanceOf(state.address));
69 | dispatch({
70 | type: "cxsAmount",
71 | payload: myBalance
72 | })
73 | }
74 |
75 | useEffect(() => {
76 | dispatch({
77 | type: "contract",
78 | payload: ERCContract(state.tokenAddress)
79 | })
80 | }, [state.tokenAddress])
81 |
82 | useEffect(() => {
83 | if (state.address == "") {
84 | dispatch({
85 | type: "amount",
86 | payload: 0
87 | })
88 | } else {
89 | setAmount();
90 | }
91 | }, [state.address, state.tokenAddress])
92 |
93 | const setAmount = async () => {
94 | var contract = ERCContract(state.tokenAddress);
95 | const myBalance = fromBigNum(await contract.balanceOf(state.address));
96 | dispatch({
97 | type: "amount",
98 | payload: myBalance
99 | })
100 | }
101 | useEffect(() => {
102 | console.log(state.provider);
103 | if (state.provider) {
104 | dispatch({
105 | type: "signer",
106 | payload: state.provider?.getSigner()
107 | })
108 | } else {
109 | dispatch({
110 | type: "signer",
111 | payload: null
112 | })
113 | }
114 | }, [state.provider])
115 |
116 | const checkBalance = async () => {
117 | const myBalance = await state.contract.balanceOf(state.address);
118 | return myBalance;
119 | }
120 | //actions
121 | const buy = async (amount) => {
122 | try {
123 | const myBalance = fromBigNum(await checkBalance());
124 | if (amount > myBalance) {
125 | NotificationManager.error("Insufficient Balance.Please check your Balance.", "Error");
126 | return false;
127 | }
128 | var erc = state.contract.connect(state.signer);
129 | var approve = await erc.approve(Contrats.presale.address, toBigNum(amount, 18));
130 | await approve.wait();
131 | var signedPresaleContract = presaleContract.connect(state.signer);
132 | var tx = await signedPresaleContract.buyWithStableCoin(state.tokenAddress, toBigNum(amount, 18));
133 | await tx.wait();
134 | NotificationManager.success("Buy Success");
135 | } catch (err) {
136 | NotificationManager.warning("An error has occured. Please try again", "Warning");
137 | }
138 | }
139 |
140 | return (
141 | [
144 | state,
145 | {
146 | buy,
147 | dispatch
148 | }
149 | ],
150 | [state]
151 | )}>
152 | {children}
153 |
154 | );
155 | }
156 |
--------------------------------------------------------------------------------
/src/contracts/contracts/4.json:
--------------------------------------------------------------------------------
1 | {
2 | "token": {
3 | "address": "0x1A03b9d9C8F29217a078C8330b06FbD480c81C5E",
4 | "abi": [
5 | {
6 | "inputs": [
7 | {
8 | "internalType": "string",
9 | "name": "name",
10 | "type": "string"
11 | },
12 | {
13 | "internalType": "string",
14 | "name": "symbol",
15 | "type": "string"
16 | }
17 | ],
18 | "stateMutability": "nonpayable",
19 | "type": "constructor"
20 | },
21 | {
22 | "anonymous": false,
23 | "inputs": [
24 | {
25 | "indexed": true,
26 | "internalType": "address",
27 | "name": "owner",
28 | "type": "address"
29 | },
30 | {
31 | "indexed": true,
32 | "internalType": "address",
33 | "name": "spender",
34 | "type": "address"
35 | },
36 | {
37 | "indexed": false,
38 | "internalType": "uint256",
39 | "name": "value",
40 | "type": "uint256"
41 | }
42 | ],
43 | "name": "Approval",
44 | "type": "event"
45 | },
46 | {
47 | "anonymous": false,
48 | "inputs": [
49 | {
50 | "indexed": true,
51 | "internalType": "address",
52 | "name": "from",
53 | "type": "address"
54 | },
55 | {
56 | "indexed": true,
57 | "internalType": "address",
58 | "name": "to",
59 | "type": "address"
60 | },
61 | {
62 | "indexed": false,
63 | "internalType": "uint256",
64 | "name": "value",
65 | "type": "uint256"
66 | }
67 | ],
68 | "name": "Transfer",
69 | "type": "event"
70 | },
71 | {
72 | "inputs": [
73 | {
74 | "internalType": "address",
75 | "name": "owner",
76 | "type": "address"
77 | },
78 | {
79 | "internalType": "address",
80 | "name": "spender",
81 | "type": "address"
82 | }
83 | ],
84 | "name": "allowance",
85 | "outputs": [
86 | {
87 | "internalType": "uint256",
88 | "name": "",
89 | "type": "uint256"
90 | }
91 | ],
92 | "stateMutability": "view",
93 | "type": "function"
94 | },
95 | {
96 | "inputs": [
97 | {
98 | "internalType": "address",
99 | "name": "spender",
100 | "type": "address"
101 | },
102 | {
103 | "internalType": "uint256",
104 | "name": "amount",
105 | "type": "uint256"
106 | }
107 | ],
108 | "name": "approve",
109 | "outputs": [
110 | {
111 | "internalType": "bool",
112 | "name": "",
113 | "type": "bool"
114 | }
115 | ],
116 | "stateMutability": "nonpayable",
117 | "type": "function"
118 | },
119 | {
120 | "inputs": [
121 | {
122 | "internalType": "address",
123 | "name": "account",
124 | "type": "address"
125 | }
126 | ],
127 | "name": "balanceOf",
128 | "outputs": [
129 | {
130 | "internalType": "uint256",
131 | "name": "",
132 | "type": "uint256"
133 | }
134 | ],
135 | "stateMutability": "view",
136 | "type": "function"
137 | },
138 | {
139 | "inputs": [
140 | {
141 | "internalType": "uint256",
142 | "name": "amount",
143 | "type": "uint256"
144 | }
145 | ],
146 | "name": "burn",
147 | "outputs": [],
148 | "stateMutability": "nonpayable",
149 | "type": "function"
150 | },
151 | {
152 | "inputs": [],
153 | "name": "decimals",
154 | "outputs": [
155 | {
156 | "internalType": "uint8",
157 | "name": "",
158 | "type": "uint8"
159 | }
160 | ],
161 | "stateMutability": "view",
162 | "type": "function"
163 | },
164 | {
165 | "inputs": [
166 | {
167 | "internalType": "address",
168 | "name": "spender",
169 | "type": "address"
170 | },
171 | {
172 | "internalType": "uint256",
173 | "name": "subtractedValue",
174 | "type": "uint256"
175 | }
176 | ],
177 | "name": "decreaseAllowance",
178 | "outputs": [
179 | {
180 | "internalType": "bool",
181 | "name": "",
182 | "type": "bool"
183 | }
184 | ],
185 | "stateMutability": "nonpayable",
186 | "type": "function"
187 | },
188 | {
189 | "inputs": [
190 | {
191 | "internalType": "address",
192 | "name": "spender",
193 | "type": "address"
194 | },
195 | {
196 | "internalType": "uint256",
197 | "name": "addedValue",
198 | "type": "uint256"
199 | }
200 | ],
201 | "name": "increaseAllowance",
202 | "outputs": [
203 | {
204 | "internalType": "bool",
205 | "name": "",
206 | "type": "bool"
207 | }
208 | ],
209 | "stateMutability": "nonpayable",
210 | "type": "function"
211 | },
212 | {
213 | "inputs": [],
214 | "name": "name",
215 | "outputs": [
216 | {
217 | "internalType": "string",
218 | "name": "",
219 | "type": "string"
220 | }
221 | ],
222 | "stateMutability": "view",
223 | "type": "function"
224 | },
225 | {
226 | "inputs": [],
227 | "name": "symbol",
228 | "outputs": [
229 | {
230 | "internalType": "string",
231 | "name": "",
232 | "type": "string"
233 | }
234 | ],
235 | "stateMutability": "view",
236 | "type": "function"
237 | },
238 | {
239 | "inputs": [],
240 | "name": "totalSupply",
241 | "outputs": [
242 | {
243 | "internalType": "uint256",
244 | "name": "",
245 | "type": "uint256"
246 | }
247 | ],
248 | "stateMutability": "view",
249 | "type": "function"
250 | },
251 | {
252 | "inputs": [
253 | {
254 | "internalType": "address",
255 | "name": "recipient",
256 | "type": "address"
257 | },
258 | {
259 | "internalType": "uint256",
260 | "name": "amount",
261 | "type": "uint256"
262 | }
263 | ],
264 | "name": "transfer",
265 | "outputs": [
266 | {
267 | "internalType": "bool",
268 | "name": "",
269 | "type": "bool"
270 | }
271 | ],
272 | "stateMutability": "nonpayable",
273 | "type": "function"
274 | },
275 | {
276 | "inputs": [
277 | {
278 | "internalType": "address",
279 | "name": "sender",
280 | "type": "address"
281 | },
282 | {
283 | "internalType": "address",
284 | "name": "recipient",
285 | "type": "address"
286 | },
287 | {
288 | "internalType": "uint256",
289 | "name": "amount",
290 | "type": "uint256"
291 | }
292 | ],
293 | "name": "transferFrom",
294 | "outputs": [
295 | {
296 | "internalType": "bool",
297 | "name": "",
298 | "type": "bool"
299 | }
300 | ],
301 | "stateMutability": "nonpayable",
302 | "type": "function"
303 | }
304 | ]
305 | },
306 | "presale": {
307 | "address": "0xaF91ae7125a35A1199add36Acfe80C8324f11969",
308 | "abi": [
309 | {
310 | "inputs": [
311 | {
312 | "internalType": "uint256",
313 | "name": "rate_",
314 | "type": "uint256"
315 | },
316 | {
317 | "internalType": "uint256",
318 | "name": "maxBuy_",
319 | "type": "uint256"
320 | },
321 | {
322 | "internalType": "uint256",
323 | "name": "startTime_",
324 | "type": "uint256"
325 | },
326 | {
327 | "internalType": "uint256",
328 | "name": "endTime_",
329 | "type": "uint256"
330 | }
331 | ],
332 | "stateMutability": "nonpayable",
333 | "type": "constructor"
334 | },
335 | {
336 | "anonymous": false,
337 | "inputs": [
338 | {
339 | "indexed": false,
340 | "internalType": "address",
341 | "name": "_addressCoin",
342 | "type": "address"
343 | },
344 | {
345 | "indexed": false,
346 | "internalType": "bool",
347 | "name": "_addRemove",
348 | "type": "bool"
349 | }
350 | ],
351 | "name": "AddStableCoin",
352 | "type": "event"
353 | },
354 | {
355 | "anonymous": false,
356 | "inputs": [
357 | {
358 | "indexed": true,
359 | "internalType": "address",
360 | "name": "buy",
361 | "type": "address"
362 | },
363 | {
364 | "indexed": false,
365 | "internalType": "uint256",
366 | "name": "amount",
367 | "type": "uint256"
368 | }
369 | ],
370 | "name": "CoinClaimed",
371 | "type": "event"
372 | },
373 | {
374 | "anonymous": false,
375 | "inputs": [
376 | {
377 | "indexed": true,
378 | "internalType": "address",
379 | "name": "previousOwner",
380 | "type": "address"
381 | },
382 | {
383 | "indexed": true,
384 | "internalType": "address",
385 | "name": "newOwner",
386 | "type": "address"
387 | }
388 | ],
389 | "name": "OwnershipTransferred",
390 | "type": "event"
391 | },
392 | {
393 | "anonymous": false,
394 | "inputs": [
395 | {
396 | "indexed": true,
397 | "internalType": "address",
398 | "name": "purchaser",
399 | "type": "address"
400 | },
401 | {
402 | "indexed": true,
403 | "internalType": "address",
404 | "name": "beneficiary",
405 | "type": "address"
406 | },
407 | {
408 | "indexed": false,
409 | "internalType": "uint256",
410 | "name": "value",
411 | "type": "uint256"
412 | },
413 | {
414 | "indexed": false,
415 | "internalType": "uint256",
416 | "name": "amount",
417 | "type": "uint256"
418 | }
419 | ],
420 | "name": "TokensPurchased",
421 | "type": "event"
422 | },
423 | {
424 | "anonymous": false,
425 | "inputs": [
426 | {
427 | "indexed": false,
428 | "internalType": "uint256",
429 | "name": "maxBuy_",
430 | "type": "uint256"
431 | }
432 | ],
433 | "name": "UpdateBuyLimits",
434 | "type": "event"
435 | },
436 | {
437 | "anonymous": false,
438 | "inputs": [
439 | {
440 | "indexed": false,
441 | "internalType": "bool",
442 | "name": "_enable",
443 | "type": "bool"
444 | }
445 | ],
446 | "name": "UpdateEnableWhitelist",
447 | "type": "event"
448 | },
449 | {
450 | "anonymous": false,
451 | "inputs": [
452 | {
453 | "indexed": false,
454 | "internalType": "bool",
455 | "name": "state_",
456 | "type": "bool"
457 | }
458 | ],
459 | "name": "UpdatePauseState",
460 | "type": "event"
461 | },
462 | {
463 | "anonymous": false,
464 | "inputs": [
465 | {
466 | "indexed": false,
467 | "internalType": "uint256",
468 | "name": "rate_",
469 | "type": "uint256"
470 | }
471 | ],
472 | "name": "UpdateRate",
473 | "type": "event"
474 | },
475 | {
476 | "anonymous": false,
477 | "inputs": [
478 | {
479 | "indexed": false,
480 | "internalType": "uint256",
481 | "name": "startTime_",
482 | "type": "uint256"
483 | },
484 | {
485 | "indexed": false,
486 | "internalType": "uint256",
487 | "name": "endTime_",
488 | "type": "uint256"
489 | }
490 | ],
491 | "name": "UpdateTiming",
492 | "type": "event"
493 | },
494 | {
495 | "anonymous": false,
496 | "inputs": [
497 | {
498 | "indexed": true,
499 | "internalType": "address",
500 | "name": "account",
501 | "type": "address"
502 | }
503 | ],
504 | "name": "UpdateWallet",
505 | "type": "event"
506 | },
507 | {
508 | "anonymous": false,
509 | "inputs": [
510 | {
511 | "indexed": true,
512 | "internalType": "address",
513 | "name": "_account",
514 | "type": "address"
515 | },
516 | {
517 | "indexed": false,
518 | "internalType": "bool",
519 | "name": "_whitelist",
520 | "type": "bool"
521 | }
522 | ],
523 | "name": "UpdateWhitelist",
524 | "type": "event"
525 | },
526 | {
527 | "inputs": [],
528 | "name": "_endTime",
529 | "outputs": [
530 | {
531 | "internalType": "uint256",
532 | "name": "",
533 | "type": "uint256"
534 | }
535 | ],
536 | "stateMutability": "view",
537 | "type": "function"
538 | },
539 | {
540 | "inputs": [],
541 | "name": "_maxBuy",
542 | "outputs": [
543 | {
544 | "internalType": "uint256",
545 | "name": "",
546 | "type": "uint256"
547 | }
548 | ],
549 | "stateMutability": "view",
550 | "type": "function"
551 | },
552 | {
553 | "inputs": [],
554 | "name": "_paused",
555 | "outputs": [
556 | {
557 | "internalType": "bool",
558 | "name": "",
559 | "type": "bool"
560 | }
561 | ],
562 | "stateMutability": "view",
563 | "type": "function"
564 | },
565 | {
566 | "inputs": [],
567 | "name": "_rate",
568 | "outputs": [
569 | {
570 | "internalType": "uint256",
571 | "name": "",
572 | "type": "uint256"
573 | }
574 | ],
575 | "stateMutability": "view",
576 | "type": "function"
577 | },
578 | {
579 | "inputs": [],
580 | "name": "_startTime",
581 | "outputs": [
582 | {
583 | "internalType": "uint256",
584 | "name": "",
585 | "type": "uint256"
586 | }
587 | ],
588 | "stateMutability": "view",
589 | "type": "function"
590 | },
591 | {
592 | "inputs": [],
593 | "name": "_totalSold",
594 | "outputs": [
595 | {
596 | "internalType": "uint256",
597 | "name": "",
598 | "type": "uint256"
599 | }
600 | ],
601 | "stateMutability": "view",
602 | "type": "function"
603 | },
604 | {
605 | "inputs": [],
606 | "name": "_wallet",
607 | "outputs": [
608 | {
609 | "internalType": "address payable",
610 | "name": "",
611 | "type": "address"
612 | }
613 | ],
614 | "stateMutability": "view",
615 | "type": "function"
616 | },
617 | {
618 | "inputs": [
619 | {
620 | "internalType": "address",
621 | "name": "_addressCoin",
622 | "type": "address"
623 | },
624 | {
625 | "internalType": "bool",
626 | "name": "_addRemove",
627 | "type": "bool"
628 | }
629 | ],
630 | "name": "addStableCoin",
631 | "outputs": [],
632 | "stateMutability": "nonpayable",
633 | "type": "function"
634 | },
635 | {
636 | "inputs": [
637 | {
638 | "internalType": "address[]",
639 | "name": "accounts",
640 | "type": "address[]"
641 | }
642 | ],
643 | "name": "addWhitelistInBulk",
644 | "outputs": [],
645 | "stateMutability": "nonpayable",
646 | "type": "function"
647 | },
648 | {
649 | "inputs": [
650 | {
651 | "internalType": "address",
652 | "name": "",
653 | "type": "address"
654 | }
655 | ],
656 | "name": "balance",
657 | "outputs": [
658 | {
659 | "internalType": "uint256",
660 | "name": "",
661 | "type": "uint256"
662 | }
663 | ],
664 | "stateMutability": "view",
665 | "type": "function"
666 | },
667 | {
668 | "inputs": [
669 | {
670 | "internalType": "address",
671 | "name": "_coin",
672 | "type": "address"
673 | },
674 | {
675 | "internalType": "uint256",
676 | "name": "amount",
677 | "type": "uint256"
678 | }
679 | ],
680 | "name": "buyWithStableCoin",
681 | "outputs": [],
682 | "stateMutability": "nonpayable",
683 | "type": "function"
684 | },
685 | {
686 | "inputs": [
687 | {
688 | "internalType": "uint256",
689 | "name": "",
690 | "type": "uint256"
691 | }
692 | ],
693 | "name": "buyers",
694 | "outputs": [
695 | {
696 | "internalType": "address",
697 | "name": "",
698 | "type": "address"
699 | }
700 | ],
701 | "stateMutability": "view",
702 | "type": "function"
703 | },
704 | {
705 | "inputs": [
706 | {
707 | "internalType": "bool",
708 | "name": "state_",
709 | "type": "bool"
710 | }
711 | ],
712 | "name": "changePauseState",
713 | "outputs": [],
714 | "stateMutability": "nonpayable",
715 | "type": "function"
716 | },
717 | {
718 | "inputs": [
719 | {
720 | "internalType": "uint256",
721 | "name": "rate_",
722 | "type": "uint256"
723 | }
724 | ],
725 | "name": "changeRate",
726 | "outputs": [],
727 | "stateMutability": "nonpayable",
728 | "type": "function"
729 | },
730 | {
731 | "inputs": [
732 | {
733 | "internalType": "uint256",
734 | "name": "startTime_",
735 | "type": "uint256"
736 | },
737 | {
738 | "internalType": "uint256",
739 | "name": "endTime_",
740 | "type": "uint256"
741 | }
742 | ],
743 | "name": "changeTimings",
744 | "outputs": [],
745 | "stateMutability": "nonpayable",
746 | "type": "function"
747 | },
748 | {
749 | "inputs": [
750 | {
751 | "internalType": "address payable",
752 | "name": "account",
753 | "type": "address"
754 | }
755 | ],
756 | "name": "changeWallet",
757 | "outputs": [],
758 | "stateMutability": "nonpayable",
759 | "type": "function"
760 | },
761 | {
762 | "inputs": [
763 | {
764 | "internalType": "address",
765 | "name": "_coin",
766 | "type": "address"
767 | }
768 | ],
769 | "name": "claimCoin",
770 | "outputs": [],
771 | "stateMutability": "nonpayable",
772 | "type": "function"
773 | },
774 | {
775 | "inputs": [],
776 | "name": "enableWhitelist",
777 | "outputs": [
778 | {
779 | "internalType": "bool",
780 | "name": "",
781 | "type": "bool"
782 | }
783 | ],
784 | "stateMutability": "view",
785 | "type": "function"
786 | },
787 | {
788 | "inputs": [],
789 | "name": "geUnlockTime",
790 | "outputs": [
791 | {
792 | "internalType": "uint256",
793 | "name": "",
794 | "type": "uint256"
795 | }
796 | ],
797 | "stateMutability": "view",
798 | "type": "function"
799 | },
800 | {
801 | "inputs": [
802 | {
803 | "internalType": "address",
804 | "name": "account",
805 | "type": "address"
806 | }
807 | ],
808 | "name": "getBalanceClaimable",
809 | "outputs": [
810 | {
811 | "internalType": "uint256",
812 | "name": "",
813 | "type": "uint256"
814 | }
815 | ],
816 | "stateMutability": "view",
817 | "type": "function"
818 | },
819 | {
820 | "inputs": [],
821 | "name": "getBuyerList",
822 | "outputs": [
823 | {
824 | "internalType": "address[]",
825 | "name": "",
826 | "type": "address[]"
827 | }
828 | ],
829 | "stateMutability": "view",
830 | "type": "function"
831 | },
832 | {
833 | "inputs": [
834 | {
835 | "internalType": "uint256",
836 | "name": "time",
837 | "type": "uint256"
838 | }
839 | ],
840 | "name": "lock",
841 | "outputs": [],
842 | "stateMutability": "nonpayable",
843 | "type": "function"
844 | },
845 | {
846 | "inputs": [],
847 | "name": "owner",
848 | "outputs": [
849 | {
850 | "internalType": "address",
851 | "name": "",
852 | "type": "address"
853 | }
854 | ],
855 | "stateMutability": "view",
856 | "type": "function"
857 | },
858 | {
859 | "inputs": [],
860 | "name": "renounceOwnership",
861 | "outputs": [],
862 | "stateMutability": "nonpayable",
863 | "type": "function"
864 | },
865 | {
866 | "inputs": [
867 | {
868 | "internalType": "uint256",
869 | "name": "maxBuy_",
870 | "type": "uint256"
871 | }
872 | ],
873 | "name": "setBuyLimit",
874 | "outputs": [],
875 | "stateMutability": "nonpayable",
876 | "type": "function"
877 | },
878 | {
879 | "inputs": [
880 | {
881 | "internalType": "address",
882 | "name": "",
883 | "type": "address"
884 | }
885 | ],
886 | "name": "stableCoin",
887 | "outputs": [
888 | {
889 | "internalType": "bool",
890 | "name": "",
891 | "type": "bool"
892 | }
893 | ],
894 | "stateMutability": "view",
895 | "type": "function"
896 | },
897 | {
898 | "inputs": [
899 | {
900 | "internalType": "address",
901 | "name": "newOwner",
902 | "type": "address"
903 | }
904 | ],
905 | "name": "transferOwnership",
906 | "outputs": [],
907 | "stateMutability": "nonpayable",
908 | "type": "function"
909 | },
910 | {
911 | "inputs": [],
912 | "name": "unlock",
913 | "outputs": [],
914 | "stateMutability": "nonpayable",
915 | "type": "function"
916 | },
917 | {
918 | "inputs": [
919 | {
920 | "internalType": "bool",
921 | "name": "_enable",
922 | "type": "bool"
923 | }
924 | ],
925 | "name": "updateEnableWhitelist",
926 | "outputs": [],
927 | "stateMutability": "nonpayable",
928 | "type": "function"
929 | },
930 | {
931 | "inputs": [
932 | {
933 | "internalType": "address",
934 | "name": "_account",
935 | "type": "address"
936 | },
937 | {
938 | "internalType": "bool",
939 | "name": "_whitelist",
940 | "type": "bool"
941 | }
942 | ],
943 | "name": "updateWhitelist",
944 | "outputs": [],
945 | "stateMutability": "nonpayable",
946 | "type": "function"
947 | },
948 | {
949 | "inputs": [
950 | {
951 | "internalType": "address",
952 | "name": "",
953 | "type": "address"
954 | }
955 | ],
956 | "name": "whitelists",
957 | "outputs": [
958 | {
959 | "internalType": "bool",
960 | "name": "",
961 | "type": "bool"
962 | }
963 | ],
964 | "stateMutability": "view",
965 | "type": "function"
966 | }
967 | ]
968 | }
969 | }
--------------------------------------------------------------------------------
/src/contracts/contracts/97.json:
--------------------------------------------------------------------------------
1 | {
2 | "token": {
3 | "address": "0xFd9Fd678C8EF9a271862edCFc0402B38B665Af69",
4 | "abi": [
5 | {
6 | "inputs": [
7 | {
8 | "internalType": "string",
9 | "name": "name_",
10 | "type": "string"
11 | },
12 | {
13 | "internalType": "string",
14 | "name": "symbol_",
15 | "type": "string"
16 | }
17 | ],
18 | "stateMutability": "nonpayable",
19 | "type": "constructor"
20 | },
21 | {
22 | "anonymous": false,
23 | "inputs": [
24 | {
25 | "indexed": true,
26 | "internalType": "address",
27 | "name": "owner",
28 | "type": "address"
29 | },
30 | {
31 | "indexed": true,
32 | "internalType": "address",
33 | "name": "spender",
34 | "type": "address"
35 | },
36 | {
37 | "indexed": false,
38 | "internalType": "uint256",
39 | "name": "value",
40 | "type": "uint256"
41 | }
42 | ],
43 | "name": "Approval",
44 | "type": "event"
45 | },
46 | {
47 | "anonymous": false,
48 | "inputs": [
49 | {
50 | "indexed": true,
51 | "internalType": "address",
52 | "name": "from",
53 | "type": "address"
54 | },
55 | {
56 | "indexed": true,
57 | "internalType": "address",
58 | "name": "to",
59 | "type": "address"
60 | },
61 | {
62 | "indexed": false,
63 | "internalType": "uint256",
64 | "name": "value",
65 | "type": "uint256"
66 | }
67 | ],
68 | "name": "Transfer",
69 | "type": "event"
70 | },
71 | {
72 | "inputs": [
73 | {
74 | "internalType": "address",
75 | "name": "owner",
76 | "type": "address"
77 | },
78 | {
79 | "internalType": "address",
80 | "name": "spender",
81 | "type": "address"
82 | }
83 | ],
84 | "name": "allowance",
85 | "outputs": [
86 | {
87 | "internalType": "uint256",
88 | "name": "",
89 | "type": "uint256"
90 | }
91 | ],
92 | "stateMutability": "view",
93 | "type": "function"
94 | },
95 | {
96 | "inputs": [
97 | {
98 | "internalType": "address",
99 | "name": "spender",
100 | "type": "address"
101 | },
102 | {
103 | "internalType": "uint256",
104 | "name": "amount",
105 | "type": "uint256"
106 | }
107 | ],
108 | "name": "approve",
109 | "outputs": [
110 | {
111 | "internalType": "bool",
112 | "name": "",
113 | "type": "bool"
114 | }
115 | ],
116 | "stateMutability": "nonpayable",
117 | "type": "function"
118 | },
119 | {
120 | "inputs": [
121 | {
122 | "internalType": "address",
123 | "name": "account",
124 | "type": "address"
125 | }
126 | ],
127 | "name": "balanceOf",
128 | "outputs": [
129 | {
130 | "internalType": "uint256",
131 | "name": "",
132 | "type": "uint256"
133 | }
134 | ],
135 | "stateMutability": "view",
136 | "type": "function"
137 | },
138 | {
139 | "inputs": [],
140 | "name": "decimals",
141 | "outputs": [
142 | {
143 | "internalType": "uint8",
144 | "name": "",
145 | "type": "uint8"
146 | }
147 | ],
148 | "stateMutability": "view",
149 | "type": "function"
150 | },
151 | {
152 | "inputs": [
153 | {
154 | "internalType": "address",
155 | "name": "spender",
156 | "type": "address"
157 | },
158 | {
159 | "internalType": "uint256",
160 | "name": "subtractedValue",
161 | "type": "uint256"
162 | }
163 | ],
164 | "name": "decreaseAllowance",
165 | "outputs": [
166 | {
167 | "internalType": "bool",
168 | "name": "",
169 | "type": "bool"
170 | }
171 | ],
172 | "stateMutability": "nonpayable",
173 | "type": "function"
174 | },
175 | {
176 | "inputs": [
177 | {
178 | "internalType": "address",
179 | "name": "spender",
180 | "type": "address"
181 | },
182 | {
183 | "internalType": "uint256",
184 | "name": "addedValue",
185 | "type": "uint256"
186 | }
187 | ],
188 | "name": "increaseAllowance",
189 | "outputs": [
190 | {
191 | "internalType": "bool",
192 | "name": "",
193 | "type": "bool"
194 | }
195 | ],
196 | "stateMutability": "nonpayable",
197 | "type": "function"
198 | },
199 | {
200 | "inputs": [],
201 | "name": "name",
202 | "outputs": [
203 | {
204 | "internalType": "string",
205 | "name": "",
206 | "type": "string"
207 | }
208 | ],
209 | "stateMutability": "view",
210 | "type": "function"
211 | },
212 | {
213 | "inputs": [],
214 | "name": "symbol",
215 | "outputs": [
216 | {
217 | "internalType": "string",
218 | "name": "",
219 | "type": "string"
220 | }
221 | ],
222 | "stateMutability": "view",
223 | "type": "function"
224 | },
225 | {
226 | "inputs": [],
227 | "name": "totalSupply",
228 | "outputs": [
229 | {
230 | "internalType": "uint256",
231 | "name": "",
232 | "type": "uint256"
233 | }
234 | ],
235 | "stateMutability": "view",
236 | "type": "function"
237 | },
238 | {
239 | "inputs": [
240 | {
241 | "internalType": "address",
242 | "name": "to",
243 | "type": "address"
244 | },
245 | {
246 | "internalType": "uint256",
247 | "name": "amount",
248 | "type": "uint256"
249 | }
250 | ],
251 | "name": "transfer",
252 | "outputs": [
253 | {
254 | "internalType": "bool",
255 | "name": "",
256 | "type": "bool"
257 | }
258 | ],
259 | "stateMutability": "nonpayable",
260 | "type": "function"
261 | },
262 | {
263 | "inputs": [
264 | {
265 | "internalType": "address",
266 | "name": "from",
267 | "type": "address"
268 | },
269 | {
270 | "internalType": "address",
271 | "name": "to",
272 | "type": "address"
273 | },
274 | {
275 | "internalType": "uint256",
276 | "name": "amount",
277 | "type": "uint256"
278 | }
279 | ],
280 | "name": "transferFrom",
281 | "outputs": [
282 | {
283 | "internalType": "bool",
284 | "name": "",
285 | "type": "bool"
286 | }
287 | ],
288 | "stateMutability": "nonpayable",
289 | "type": "function"
290 | }
291 | ]
292 | },
293 | "presale": {
294 | "address": "0x4855861e14152B250FbeBF14b18eE29c806752fb",
295 | "abi": [
296 | {
297 | "inputs": [
298 | {
299 | "internalType": "uint256",
300 | "name": "rate_",
301 | "type": "uint256"
302 | },
303 | {
304 | "internalType": "uint256",
305 | "name": "maxBuy_",
306 | "type": "uint256"
307 | },
308 | {
309 | "internalType": "uint256",
310 | "name": "startTime_",
311 | "type": "uint256"
312 | },
313 | {
314 | "internalType": "uint256",
315 | "name": "endTime_",
316 | "type": "uint256"
317 | },
318 | {
319 | "internalType": "address",
320 | "name": "presaleToken_",
321 | "type": "address"
322 | }
323 | ],
324 | "stateMutability": "nonpayable",
325 | "type": "constructor"
326 | },
327 | {
328 | "anonymous": false,
329 | "inputs": [
330 | {
331 | "indexed": false,
332 | "internalType": "address",
333 | "name": "_addressCoin",
334 | "type": "address"
335 | },
336 | {
337 | "indexed": false,
338 | "internalType": "bool",
339 | "name": "_addRemove",
340 | "type": "bool"
341 | }
342 | ],
343 | "name": "AddStableCoin",
344 | "type": "event"
345 | },
346 | {
347 | "anonymous": false,
348 | "inputs": [
349 | {
350 | "indexed": true,
351 | "internalType": "address",
352 | "name": "buy",
353 | "type": "address"
354 | },
355 | {
356 | "indexed": false,
357 | "internalType": "uint256",
358 | "name": "amount",
359 | "type": "uint256"
360 | }
361 | ],
362 | "name": "CoinClaimed",
363 | "type": "event"
364 | },
365 | {
366 | "anonymous": false,
367 | "inputs": [
368 | {
369 | "indexed": true,
370 | "internalType": "address",
371 | "name": "previousOwner",
372 | "type": "address"
373 | },
374 | {
375 | "indexed": true,
376 | "internalType": "address",
377 | "name": "newOwner",
378 | "type": "address"
379 | }
380 | ],
381 | "name": "OwnershipTransferred",
382 | "type": "event"
383 | },
384 | {
385 | "anonymous": false,
386 | "inputs": [
387 | {
388 | "indexed": true,
389 | "internalType": "address",
390 | "name": "purchaser",
391 | "type": "address"
392 | },
393 | {
394 | "indexed": true,
395 | "internalType": "address",
396 | "name": "beneficiary",
397 | "type": "address"
398 | },
399 | {
400 | "indexed": false,
401 | "internalType": "uint256",
402 | "name": "value",
403 | "type": "uint256"
404 | },
405 | {
406 | "indexed": false,
407 | "internalType": "uint256",
408 | "name": "amount",
409 | "type": "uint256"
410 | }
411 | ],
412 | "name": "TokensPurchased",
413 | "type": "event"
414 | },
415 | {
416 | "anonymous": false,
417 | "inputs": [
418 | {
419 | "indexed": false,
420 | "internalType": "uint256",
421 | "name": "maxBuy_",
422 | "type": "uint256"
423 | }
424 | ],
425 | "name": "UpdateBuyLimits",
426 | "type": "event"
427 | },
428 | {
429 | "anonymous": false,
430 | "inputs": [
431 | {
432 | "indexed": false,
433 | "internalType": "bool",
434 | "name": "_enable",
435 | "type": "bool"
436 | }
437 | ],
438 | "name": "UpdateEnableWhitelist",
439 | "type": "event"
440 | },
441 | {
442 | "anonymous": false,
443 | "inputs": [
444 | {
445 | "indexed": false,
446 | "internalType": "bool",
447 | "name": "state_",
448 | "type": "bool"
449 | }
450 | ],
451 | "name": "UpdatePauseState",
452 | "type": "event"
453 | },
454 | {
455 | "anonymous": false,
456 | "inputs": [
457 | {
458 | "indexed": false,
459 | "internalType": "uint256",
460 | "name": "rate_",
461 | "type": "uint256"
462 | }
463 | ],
464 | "name": "UpdateRate",
465 | "type": "event"
466 | },
467 | {
468 | "anonymous": false,
469 | "inputs": [
470 | {
471 | "indexed": false,
472 | "internalType": "uint256",
473 | "name": "startTime_",
474 | "type": "uint256"
475 | },
476 | {
477 | "indexed": false,
478 | "internalType": "uint256",
479 | "name": "endTime_",
480 | "type": "uint256"
481 | }
482 | ],
483 | "name": "UpdateTiming",
484 | "type": "event"
485 | },
486 | {
487 | "anonymous": false,
488 | "inputs": [
489 | {
490 | "indexed": true,
491 | "internalType": "address",
492 | "name": "account",
493 | "type": "address"
494 | }
495 | ],
496 | "name": "UpdateWallet",
497 | "type": "event"
498 | },
499 | {
500 | "anonymous": false,
501 | "inputs": [
502 | {
503 | "indexed": true,
504 | "internalType": "address",
505 | "name": "_account",
506 | "type": "address"
507 | },
508 | {
509 | "indexed": false,
510 | "internalType": "bool",
511 | "name": "_whitelist",
512 | "type": "bool"
513 | }
514 | ],
515 | "name": "UpdateWhitelist",
516 | "type": "event"
517 | },
518 | {
519 | "inputs": [],
520 | "name": "_endTime",
521 | "outputs": [
522 | {
523 | "internalType": "uint256",
524 | "name": "",
525 | "type": "uint256"
526 | }
527 | ],
528 | "stateMutability": "view",
529 | "type": "function"
530 | },
531 | {
532 | "inputs": [],
533 | "name": "_maxBuy",
534 | "outputs": [
535 | {
536 | "internalType": "uint256",
537 | "name": "",
538 | "type": "uint256"
539 | }
540 | ],
541 | "stateMutability": "view",
542 | "type": "function"
543 | },
544 | {
545 | "inputs": [],
546 | "name": "_paused",
547 | "outputs": [
548 | {
549 | "internalType": "bool",
550 | "name": "",
551 | "type": "bool"
552 | }
553 | ],
554 | "stateMutability": "view",
555 | "type": "function"
556 | },
557 | {
558 | "inputs": [],
559 | "name": "_presaleToken",
560 | "outputs": [
561 | {
562 | "internalType": "address",
563 | "name": "",
564 | "type": "address"
565 | }
566 | ],
567 | "stateMutability": "view",
568 | "type": "function"
569 | },
570 | {
571 | "inputs": [],
572 | "name": "_rate",
573 | "outputs": [
574 | {
575 | "internalType": "uint256",
576 | "name": "",
577 | "type": "uint256"
578 | }
579 | ],
580 | "stateMutability": "view",
581 | "type": "function"
582 | },
583 | {
584 | "inputs": [],
585 | "name": "_startTime",
586 | "outputs": [
587 | {
588 | "internalType": "uint256",
589 | "name": "",
590 | "type": "uint256"
591 | }
592 | ],
593 | "stateMutability": "view",
594 | "type": "function"
595 | },
596 | {
597 | "inputs": [],
598 | "name": "_totalSold",
599 | "outputs": [
600 | {
601 | "internalType": "uint256",
602 | "name": "",
603 | "type": "uint256"
604 | }
605 | ],
606 | "stateMutability": "view",
607 | "type": "function"
608 | },
609 | {
610 | "inputs": [],
611 | "name": "_wallet",
612 | "outputs": [
613 | {
614 | "internalType": "address payable",
615 | "name": "",
616 | "type": "address"
617 | }
618 | ],
619 | "stateMutability": "view",
620 | "type": "function"
621 | },
622 | {
623 | "inputs": [
624 | {
625 | "internalType": "address",
626 | "name": "_addressCoin",
627 | "type": "address"
628 | },
629 | {
630 | "internalType": "bool",
631 | "name": "_addRemove",
632 | "type": "bool"
633 | }
634 | ],
635 | "name": "addStableCoin",
636 | "outputs": [],
637 | "stateMutability": "nonpayable",
638 | "type": "function"
639 | },
640 | {
641 | "inputs": [
642 | {
643 | "internalType": "address[]",
644 | "name": "accounts",
645 | "type": "address[]"
646 | }
647 | ],
648 | "name": "addWhitelistInBulk",
649 | "outputs": [],
650 | "stateMutability": "nonpayable",
651 | "type": "function"
652 | },
653 | {
654 | "inputs": [
655 | {
656 | "internalType": "address",
657 | "name": "",
658 | "type": "address"
659 | }
660 | ],
661 | "name": "balance",
662 | "outputs": [
663 | {
664 | "internalType": "uint256",
665 | "name": "",
666 | "type": "uint256"
667 | }
668 | ],
669 | "stateMutability": "view",
670 | "type": "function"
671 | },
672 | {
673 | "inputs": [
674 | {
675 | "internalType": "address",
676 | "name": "_coin",
677 | "type": "address"
678 | },
679 | {
680 | "internalType": "uint256",
681 | "name": "amount",
682 | "type": "uint256"
683 | }
684 | ],
685 | "name": "buyWithStableCoin",
686 | "outputs": [],
687 | "stateMutability": "nonpayable",
688 | "type": "function"
689 | },
690 | {
691 | "inputs": [
692 | {
693 | "internalType": "uint256",
694 | "name": "",
695 | "type": "uint256"
696 | }
697 | ],
698 | "name": "buyers",
699 | "outputs": [
700 | {
701 | "internalType": "address",
702 | "name": "",
703 | "type": "address"
704 | }
705 | ],
706 | "stateMutability": "view",
707 | "type": "function"
708 | },
709 | {
710 | "inputs": [
711 | {
712 | "internalType": "bool",
713 | "name": "state_",
714 | "type": "bool"
715 | }
716 | ],
717 | "name": "changePauseState",
718 | "outputs": [],
719 | "stateMutability": "nonpayable",
720 | "type": "function"
721 | },
722 | {
723 | "inputs": [
724 | {
725 | "internalType": "uint256",
726 | "name": "rate_",
727 | "type": "uint256"
728 | }
729 | ],
730 | "name": "changeRate",
731 | "outputs": [],
732 | "stateMutability": "nonpayable",
733 | "type": "function"
734 | },
735 | {
736 | "inputs": [
737 | {
738 | "internalType": "uint256",
739 | "name": "startTime_",
740 | "type": "uint256"
741 | },
742 | {
743 | "internalType": "uint256",
744 | "name": "endTime_",
745 | "type": "uint256"
746 | }
747 | ],
748 | "name": "changeTimings",
749 | "outputs": [],
750 | "stateMutability": "nonpayable",
751 | "type": "function"
752 | },
753 | {
754 | "inputs": [
755 | {
756 | "internalType": "address payable",
757 | "name": "account",
758 | "type": "address"
759 | }
760 | ],
761 | "name": "changeWallet",
762 | "outputs": [],
763 | "stateMutability": "nonpayable",
764 | "type": "function"
765 | },
766 | {
767 | "inputs": [
768 | {
769 | "internalType": "address",
770 | "name": "_coin",
771 | "type": "address"
772 | }
773 | ],
774 | "name": "claimCoin",
775 | "outputs": [],
776 | "stateMutability": "nonpayable",
777 | "type": "function"
778 | },
779 | {
780 | "inputs": [],
781 | "name": "enableWhitelist",
782 | "outputs": [
783 | {
784 | "internalType": "bool",
785 | "name": "",
786 | "type": "bool"
787 | }
788 | ],
789 | "stateMutability": "view",
790 | "type": "function"
791 | },
792 | {
793 | "inputs": [],
794 | "name": "geUnlockTime",
795 | "outputs": [
796 | {
797 | "internalType": "uint256",
798 | "name": "",
799 | "type": "uint256"
800 | }
801 | ],
802 | "stateMutability": "view",
803 | "type": "function"
804 | },
805 | {
806 | "inputs": [
807 | {
808 | "internalType": "address",
809 | "name": "account",
810 | "type": "address"
811 | }
812 | ],
813 | "name": "getBalanceClaimable",
814 | "outputs": [
815 | {
816 | "internalType": "uint256",
817 | "name": "",
818 | "type": "uint256"
819 | }
820 | ],
821 | "stateMutability": "view",
822 | "type": "function"
823 | },
824 | {
825 | "inputs": [],
826 | "name": "getBuyerList",
827 | "outputs": [
828 | {
829 | "internalType": "address[]",
830 | "name": "",
831 | "type": "address[]"
832 | }
833 | ],
834 | "stateMutability": "view",
835 | "type": "function"
836 | },
837 | {
838 | "inputs": [
839 | {
840 | "internalType": "uint256",
841 | "name": "time",
842 | "type": "uint256"
843 | }
844 | ],
845 | "name": "lock",
846 | "outputs": [],
847 | "stateMutability": "nonpayable",
848 | "type": "function"
849 | },
850 | {
851 | "inputs": [],
852 | "name": "owner",
853 | "outputs": [
854 | {
855 | "internalType": "address",
856 | "name": "",
857 | "type": "address"
858 | }
859 | ],
860 | "stateMutability": "view",
861 | "type": "function"
862 | },
863 | {
864 | "inputs": [],
865 | "name": "renounceOwnership",
866 | "outputs": [],
867 | "stateMutability": "nonpayable",
868 | "type": "function"
869 | },
870 | {
871 | "inputs": [
872 | {
873 | "internalType": "uint256",
874 | "name": "maxBuy_",
875 | "type": "uint256"
876 | }
877 | ],
878 | "name": "setBuyLimit",
879 | "outputs": [],
880 | "stateMutability": "nonpayable",
881 | "type": "function"
882 | },
883 | {
884 | "inputs": [
885 | {
886 | "internalType": "address",
887 | "name": "presaleToken_",
888 | "type": "address"
889 | }
890 | ],
891 | "name": "setPresaleToken",
892 | "outputs": [],
893 | "stateMutability": "nonpayable",
894 | "type": "function"
895 | },
896 | {
897 | "inputs": [
898 | {
899 | "internalType": "address",
900 | "name": "",
901 | "type": "address"
902 | }
903 | ],
904 | "name": "stableCoin",
905 | "outputs": [
906 | {
907 | "internalType": "bool",
908 | "name": "",
909 | "type": "bool"
910 | }
911 | ],
912 | "stateMutability": "view",
913 | "type": "function"
914 | },
915 | {
916 | "inputs": [
917 | {
918 | "internalType": "address",
919 | "name": "newOwner",
920 | "type": "address"
921 | }
922 | ],
923 | "name": "transferOwnership",
924 | "outputs": [],
925 | "stateMutability": "nonpayable",
926 | "type": "function"
927 | },
928 | {
929 | "inputs": [],
930 | "name": "unlock",
931 | "outputs": [],
932 | "stateMutability": "nonpayable",
933 | "type": "function"
934 | },
935 | {
936 | "inputs": [
937 | {
938 | "internalType": "bool",
939 | "name": "_enable",
940 | "type": "bool"
941 | }
942 | ],
943 | "name": "updateEnableWhitelist",
944 | "outputs": [],
945 | "stateMutability": "nonpayable",
946 | "type": "function"
947 | },
948 | {
949 | "inputs": [
950 | {
951 | "internalType": "address",
952 | "name": "_account",
953 | "type": "address"
954 | },
955 | {
956 | "internalType": "bool",
957 | "name": "_whitelist",
958 | "type": "bool"
959 | }
960 | ],
961 | "name": "updateWhitelist",
962 | "outputs": [],
963 | "stateMutability": "nonpayable",
964 | "type": "function"
965 | },
966 | {
967 | "inputs": [
968 | {
969 | "internalType": "address",
970 | "name": "",
971 | "type": "address"
972 | }
973 | ],
974 | "name": "whitelists",
975 | "outputs": [
976 | {
977 | "internalType": "bool",
978 | "name": "",
979 | "type": "bool"
980 | }
981 | ],
982 | "stateMutability": "view",
983 | "type": "function"
984 | }
985 | ]
986 | }
987 | }
--------------------------------------------------------------------------------
/src/contracts/index.js:
--------------------------------------------------------------------------------
1 | import { ethers } from "ethers";
2 |
3 | import Contrats from "./contracts/97.json";
4 |
5 | const supportChainId = 97;
6 |
7 | const RPCS = {
8 | 1: "http://13.59.118.124/eth",
9 | 56: "https://bsc-dataseed.binance.org/",
10 | 97: "https://data-seed-prebsc-1-s1.binance.org:8545/",
11 | 250: "https://rpc.ftm.tools/",
12 | 4002: "https://rpc.testnet.fantom.network",
13 | 26: "https://mainnet-rpc.icicbchain.org",
14 | 417: "https://testnet-rpc.icicbchain.org",
15 | 1337: "http://localhost:7545",
16 | 31337: "http://localhost:8545/",
17 | 4: "https://rinkeby.infura.io/v3/580d6de4d2694cbdbee111d2f553dbcc"
18 | }
19 |
20 | const providers = {
21 | 1: new ethers.providers.JsonRpcProvider(RPCS[1]),
22 | 56: new ethers.providers.JsonRpcProvider(RPCS[56]),
23 | 250: new ethers.providers.JsonRpcProvider(RPCS[250]),
24 | 4002: new ethers.providers.JsonRpcProvider(RPCS[4002]),
25 | 26: new ethers.providers.JsonRpcProvider(RPCS[26]),
26 | 417: new ethers.providers.JsonRpcProvider(RPCS[417]),
27 | 4: new ethers.providers.JsonRpcProvider(RPCS[4]),
28 | 97: new ethers.providers.JsonRpcProvider(RPCS[97])
29 | // 31337: new ethers.providers.JsonRpcProvider(RPCS[31337])
30 | }
31 |
32 | const ERCContract = (e) => {
33 | const result = new ethers.Contract(
34 | e, Contrats.token.abi, providers[supportChainId]
35 | )
36 | return result;
37 | }
38 | const presaleContract = new ethers.Contract(Contrats.presale.address, Contrats.presale.abi, providers[supportChainId]);
39 |
40 | export {
41 | providers, ERCContract, presaleContract, Contrats
42 | }
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 |
6 | iframe {
7 | z-index: -99999999 !important;
8 | }
9 |
10 | .rs-btn-default {
11 | display: flex !important;
12 | align-items: center;
13 | }
14 |
15 | .rs-dropdown-menu {
16 | position: absolute;
17 | width: 93px;
18 | }
19 |
20 | .dark .rs-btn-default {
21 | display: flex !important;
22 | align-items: center;
23 | background-color: #161616 !important;
24 | color: #fff !important;
25 | border-radius: 0;
26 | outline: none;
27 | border: 0;
28 | }
29 |
30 | .light .rs-btn-default {
31 | display: flex !important;
32 | align-items: center;
33 | color: #0F0F0F !important;
34 | background-color: #F6F6F6 !important;
35 | border-radius: 0;
36 | outline: none;
37 | border: 0;
38 | }
39 |
40 | .light .rs-dropdown-menu {
41 | position: absolute;
42 | width: 93px;
43 | background-color: #F6F6F6;
44 | color: #0F0F0F !important;
45 | }
46 |
47 | .dark .rs-dropdown-menu {
48 | position: absolute;
49 | width: 94px;
50 | background-color: #161616;
51 | color: #F6F6F6 !important;
52 | }
53 |
54 |
55 | .rs-dropdown-toggle-caret {
56 | display: flex;
57 | -ms-flex-align: center;
58 | align-items: center;
59 | margin-left: 2px;
60 | position: absolute;
61 | top: 9px !important;
62 | right: 0px !important;
63 | height: 20px !important;
64 | font-size: 10px !important;
65 | }
66 |
67 | .rs-dropdown-toggle,
68 | .rs-dropdown-toggle.rs-btn {
69 | padding-right: 15px;
70 | }
71 |
72 | .busd-placement-bottom-start button,
73 | .usd-placement-bottom-start button {
74 | padding-right: 15px !important;
75 | }
76 |
77 | .rs-dropdown-toggle-icon {
78 | margin-right: 10px !important;
79 | }
80 |
81 | .rs-dropdown-item {
82 | display: flex !important;
83 | justify-content: center;
84 | align-items: center;
85 | }
86 |
87 | .dark .rs-dropdown-item {
88 | color: #F6F6F6;
89 | }
90 |
91 | .dark body {
92 | background-color: #0F0F0F;
93 | }
94 |
95 | .light body {
96 | background-color: #F6F6F6;
97 | }
98 |
99 | .rs-dropdown-item-menu-icon {
100 | height: 22px;
101 | width: 22px;
102 | margin-right: 10px;
103 | }
104 |
105 | .rs-dropdown-toggle-icon {
106 | width: 22px;
107 | height: 22px;
108 | }
109 |
110 | .hide-dropdown .rs-dropdown-toggle-caret {
111 | display: none;
112 | }
113 |
114 | .hide-dropdown .rs-dropdown-menu {
115 | display: none;
116 | }
117 |
118 | .hide-dropdown button {
119 | -webkit-transition: none !important;
120 | -moz-transition: none !important;
121 | -o-transition: none !important;
122 | transition: none !important;
123 | cursor: default !important;
124 | background: none !important;
125 | outline: none !important;
126 | background-image: none !important;
127 |
128 | }
129 |
130 | .hide-dropdown button:active {
131 | border-style: outset;
132 | -webkit-transition: none !important;
133 | -moz-transition: none !important;
134 | -o-transition: none !important;
135 | transition: none !important;
136 | }
137 |
138 | .hide-dropdown .rs-ripple {
139 | display: none;
140 | }
141 |
142 | /*
143 | .hide-dropdown button.active.focus, button.active:focus,
144 | button.focus, button:active.focus,
145 | button:active:focus, button:focus {
146 | outline: none;
147 | box-shadow: none;
148 | background-color: white;
149 | } */
150 |
151 |
152 |
153 | @media(max-width:500px) {
154 |
155 | .hide-dropdown button,
156 | .show-dropdown button {
157 | overflow: inherit !important;
158 | }
159 |
160 | .usd-placement-bottom-start button {
161 | padding-right: 36px !important;
162 | }
163 | }
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom/client';
3 | import './index.css';
4 | import App from './App';
5 | import reportWebVitals from './reportWebVitals';
6 |
7 | const root = ReactDOM.createRoot(document.getElementById('root'));
8 | root.render(
9 |
10 |
11 |
12 | );
13 |
14 | // If you want to start measuring performance in your app, pass a function
15 | // to log results (for example: reportWebVitals(console.log))
16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
17 | reportWebVitals();
18 |
--------------------------------------------------------------------------------
/src/lib/chains.js:
--------------------------------------------------------------------------------
1 |
2 | export const CHAIN_ID_ETHEREUM = 1;
3 | export const CHAIN_ID_ETHEREUM_HEX = '0x1';
4 | export const CHAIN_ID_BSC_TESTNET = 97;
5 | export const CHAIN_ID_BSC_TESTNET_HEX = '0x61';
6 |
7 | // export const DEFAULT_CHAIN_ID = CHAIN_ID_ETHEREUM;
8 | // export const DEFAULT_CHAIN_ID_HEX = CHAIN_ID_ETHEREUM_HEX;
9 | export const DEFAULT_CHAIN_ID = CHAIN_ID_BSC_TESTNET;
10 | export const DEFAULT_CHAIN_ID_HEX = CHAIN_ID_BSC_TESTNET_HEX;
11 |
12 | const supportedChains = [
13 | {
14 | name: 'Ethereum Mainnet',
15 | short_name: 'eth',
16 | chain: 'ETH',
17 | network: 'mainnet',
18 | chain_id: CHAIN_ID_ETHEREUM,
19 | network_id: 1,
20 | rpc_url: 'https://mainnet.infura.io/v3/%API_KEY%',
21 | native_currency: {
22 | symbol: 'ETH',
23 | name: 'Ethereum',
24 | decimals: '18',
25 | contractAddress: '',
26 | balance: '',
27 | },
28 | },
29 | // {
30 | // name: 'Ethereum Ropsten',
31 | // short_name: 'rop',
32 | // chain: 'ETH',
33 | // network: 'ropsten',
34 | // chain_id: 3,
35 | // network_id: 3,
36 | // rpc_url: 'https://ropsten.infura.io/v3/%API_KEY%',
37 | // native_currency: {
38 | // symbol: 'ETH',
39 | // name: 'Ethereum',
40 | // decimals: '18',
41 | // contractAddress: '',
42 | // balance: '',
43 | // },
44 | // },
45 | // {
46 | // name: 'Ethereum Rinkeby',
47 | // short_name: 'rin',
48 | // chain: 'ETH',
49 | // network: 'rinkeby',
50 | // chain_id: 4,
51 | // network_id: 4,
52 | // rpc_url: 'https://rinkeby.infura.io/v3/%API_KEY%',
53 | // native_currency: {
54 | // symbol: 'ETH',
55 | // name: 'Ethereum',
56 | // decimals: '18',
57 | // contractAddress: '',
58 | // balance: '',
59 | // },
60 | // },
61 | // {
62 | // name: 'Ethereum Görli',
63 | // short_name: 'gor',
64 | // chain: 'ETH',
65 | // network: 'goerli',
66 | // chain_id: 5,
67 | // network_id: 5,
68 | // rpc_url: 'https://goerli.infura.io/v3/%API_KEY%',
69 | // native_currency: {
70 | // symbol: 'ETH',
71 | // name: 'Ethereum',
72 | // decimals: '18',
73 | // contractAddress: '',
74 | // balance: '',
75 | // },
76 | // },
77 | // {
78 | // name: 'RSK Mainnet',
79 | // short_name: 'rsk',
80 | // chain: 'RSK',
81 | // network: 'mainnet',
82 | // chain_id: 30,
83 | // network_id: 30,
84 | // rpc_url: 'https://public-node.rsk.co',
85 | // native_currency: {
86 | // symbol: 'RSK',
87 | // name: 'RSK',
88 | // decimals: '18',
89 | // contractAddress: '',
90 | // balance: '',
91 | // },
92 | // },
93 | // {
94 | // name: 'Ethereum Kovan',
95 | // short_name: 'kov',
96 | // chain: 'ETH',
97 | // network: 'kovan',
98 | // chain_id: 42,
99 | // network_id: 42,
100 | // rpc_url: 'https://kovan.infura.io/v3/%API_KEY%',
101 | // native_currency: {
102 | // symbol: 'ETH',
103 | // name: 'Ethereum',
104 | // decimals: '18',
105 | // contractAddress: '',
106 | // balance: '',
107 | // },
108 | // },
109 | // {
110 | // name: 'Ethereum Classic Mainnet',
111 | // short_name: 'etc',
112 | // chain: 'ETC',
113 | // network: 'mainnet',
114 | // chain_id: 61,
115 | // network_id: 1,
116 | // rpc_url: 'https://ethereumclassic.network',
117 | // native_currency: {
118 | // symbol: 'ETH',
119 | // name: 'Ethereum',
120 | // decimals: '18',
121 | // contractAddress: '',
122 | // balance: '',
123 | // },
124 | // },
125 | // {
126 | // name: 'POA Network Sokol',
127 | // short_name: 'poa',
128 | // chain: 'POA',
129 | // network: 'sokol',
130 | // chain_id: 77,
131 | // network_id: 77,
132 | // rpc_url: 'https://sokol.poa.network',
133 | // native_currency: {
134 | // symbol: 'POA',
135 | // name: 'POA',
136 | // decimals: '18',
137 | // contractAddress: '',
138 | // balance: '',
139 | // },
140 | // },
141 | // {
142 | // name: 'POA Network Core',
143 | // short_name: 'skl',
144 | // chain: 'POA',
145 | // network: 'core',
146 | // chain_id: 99,
147 | // network_id: 99,
148 | // rpc_url: 'https://core.poa.network',
149 | // native_currency: {
150 | // symbol: 'POA',
151 | // name: 'POA',
152 | // decimals: '18',
153 | // contractAddress: '',
154 | // balance: '',
155 | // },
156 | // },
157 | // {
158 | // name: 'xDAI Chain',
159 | // short_name: 'xdai',
160 | // chain: 'POA',
161 | // network: 'dai',
162 | // chain_id: 100,
163 | // network_id: 100,
164 | // rpc_url: 'https://dai.poa.network',
165 | // native_currency: {
166 | // symbol: 'xDAI',
167 | // name: 'xDAI',
168 | // decimals: '18',
169 | // contractAddress: '',
170 | // balance: '',
171 | // },
172 | // },
173 | // {
174 | // name: 'Callisto Mainnet',
175 | // short_name: 'clo',
176 | // chain: 'callisto',
177 | // network: 'mainnet',
178 | // chain_id: 820,
179 | // network_id: 1,
180 | // rpc_url: 'https://clo-geth.0xinfra.com/',
181 | // native_currency: {
182 | // symbol: 'CLO',
183 | // name: 'CLO',
184 | // decimals: '18',
185 | // contractAddress: '',
186 | // balance: '',
187 | // },
188 | // },
189 | {
190 | name: 'Binance Smart Chain',
191 | short_name: 'bsc',
192 | chain: 'smartchain',
193 | network: 'mainnet',
194 | chain_id: 56,
195 | network_id: 56,
196 | rpc_url: 'https://bsc-dataseed1.defibit.io/',
197 | native_currency: {
198 | symbol: 'BNB',
199 | name: 'BNB',
200 | decimals: '18',
201 | contractAddress: '',
202 | balance: '',
203 | },
204 | },
205 | ]
206 |
207 | export default supportedChains
208 |
--------------------------------------------------------------------------------
/src/locales/en-US.json:
--------------------------------------------------------------------------------
1 | {
2 | "lang": "En",
3 | "buy_cxs": "Buy CXS Coin",
4 | "select_wallet": "Connect your Wallet",
5 | "address": "Address",
6 | "wallet.connect": "Connect",
7 | "connectwallet": "Please connect Wallet",
8 | "you_pay": "You pay",
9 | "my_balance": "My Balance",
10 | "receive": "You receive",
11 | "cxs_bal": "My CXS Balance",
12 | "validate": "VALIDATE",
13 | "mail": "Mail",
14 | "good": "Good morning",
15 | "connect": "Connect Wallet",
16 | "presale": "Presale"
17 | }
--------------------------------------------------------------------------------
/src/locales/fr-FR.json:
--------------------------------------------------------------------------------
1 | {
2 | "lang": "Fr",
3 | "buy_cxs": "Acheter des CXS",
4 | "select_wallet": "Connecter votre wallet",
5 | "connectwallet": "Veuillez connecter le portefeuille",
6 | "address": "Adresse",
7 | "you_pay": "Vous Payez",
8 | "my_balance": "Ma balance",
9 | "receive": "Vous recevez",
10 | "cxs_bal": "Ma balance CXS",
11 | "validate": "VALIDER",
12 | "presale": "Prévente",
13 | "mail": "Mail",
14 | "good": "Bonjour",
15 | "connect": "Connecter le Wallet"
16 | }
--------------------------------------------------------------------------------
/src/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/reportWebVitals.js:
--------------------------------------------------------------------------------
1 | const reportWebVitals = onPerfEntry => {
2 | if (onPerfEntry && onPerfEntry instanceof Function) {
3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
4 | getCLS(onPerfEntry);
5 | getFID(onPerfEntry);
6 | getFCP(onPerfEntry);
7 | getLCP(onPerfEntry);
8 | getTTFB(onPerfEntry);
9 | });
10 | }
11 | };
12 |
13 | export default reportWebVitals;
14 |
--------------------------------------------------------------------------------
/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom';
6 |
--------------------------------------------------------------------------------
/src/utils/index.js:
--------------------------------------------------------------------------------
1 |
2 | import { ethers } from "ethers"
3 |
4 | /**
5 | * set delay for delayTimes
6 | * @param {Number} delayTimes - timePeriod for delay
7 | */
8 | function delay(delayTimes) {
9 | return new Promise(resolve => {
10 | setTimeout(() => {
11 | resolve(2);
12 | }, delayTimes);
13 | });
14 | }
15 |
16 | /**
17 | * change data type from Number to BigNum
18 | * @param {Number} value - data that need to be change
19 | * @param {Number} d - decimals
20 | */
21 | function toBigNum(value, d) {
22 | return ethers.utils.parseUnits(Number(value).toFixed(d), d);
23 | }
24 |
25 | /**
26 | * change data type from BigNum to Number
27 | * @param {Number} value - data that need to be change
28 | * @param {Number} d - decimals
29 | */
30 | function fromBigNum(value, d) {
31 | return parseFloat(ethers.utils.formatUnits(value, d));
32 | }
33 |
34 | const toHex = (num) => {
35 | const val = Number(num);
36 | return "0x" + val.toString(16);
37 | };
38 |
39 | export { delay, toBigNum, fromBigNum, toHex };
--------------------------------------------------------------------------------