# Crowdsale referral system ## User Story - Пользователь приходит на сайт по реферальной ссылке или без - Подключает кошелёк Metamask, WalletConnet - При нажатии кнопки buy происходит проверка allowance адреса токена на адрес контракта - Если меньше чем 25 * 1018, то создаётся транзакция approve и ожидается выполнение транзакции и переходит к прошлому пункту **BUSDToken.approve(crowdsaleAddress, 25 * 10 ^ 18)** - Создаётся вторая транзакция на исполнение метода buy контракта crowdsale **crowdsaleContract.buy(refAddress)** - Может просмотреть свою реферальную ссылку, которая появилась в момент оплаты - Деньги или отправились целиком на кошелек владельца проекта, или часть ушла реферралу ## Tasks - [ ] Вёрстка лендинга - [ ] Подключение кошельков - [ ] Подключение контракта - [ ] Генерация реферальной ссылке при условии выполнения транзакции ## Additional information Библиотеки для фронта: [web3](https://web3js.readthedocs.io/en/v1.7.5/), [ethers](https://docs.ethers.io/v5/) Библиотека для бека: [web3.py] (https://web3py.readthedocs.io/en/stable/) React библиотека для кошельков: [rainbowkit](https://github.com/rainbow-me/rainbowkit) О создании подписи: [sign](https://hukenneth.medium.com/ethereum-using-web3-js-for-message-signing-7e2935b2958c) Пример подключения контракта: [alchemy](https://www.web3.university/tracks/create-a-smart-contract/integrate-your-smart-contract-with-a-frontend) Сканнер блокчейна: [etherscan](https://etherscan.io/) С блокчейном взаимодействие идёт с помощью rpc нод, которые бывают публичными, оффициальными, сторонними и тд. Пример: [Infura](https://infura.io/), [Alchemy](https://www.alchemy.com/), [Официальные](https://docs.bscscan.com/misc-tools-and-utilities/public-rpc-nodes) Для непосредственного взаимодействия с контрактами используется abi, берётся со сканера сетей, по сути это json описание методов