Skip to content

Latest commit

 

History

History
96 lines (76 loc) · 5.92 KB

README.md

File metadata and controls

96 lines (76 loc) · 5.92 KB

BipExchangeBot

Описание

Бот является копией сервиса по обмену bib.dev

Установка

1. Установить postgreSQL. BipExchangeBot используется 11.
2. Создать базу данных.
3. Установить параметры .ENV

Возможности сервиса.

  • Показать текущий курс BIP/USD.
  • Покупка BIP.
  • Продать BIP.
  • Показать лоты на продажу.

Возможности бота.

  • Отображение привествия.
  • Команда start.
  • Команда settings. Для изменения языка.
  • Переделать главное меню из кнопок в клавиатуру.
  • Сделать возможность показать bitcoin адреса, которые вводил ранее пользователь как подсказки.
  • Сделать возможность показать minter адреса, которые вводил ранее пользователь как подсказки.
  • Сделать возможность показать email адреса, которые вводил ранее пользователь как подсказки.
  • Сделать возможность выбор цены за монеты из предложенных.

Показать текущий курс.

Бот выполняет запрос и получает текующий курс.

Покупка BIP.

  1. При нажатии кнопки "Купить BIP" бот собирает данные: минтер адрес (куда прислать купленные BIP) и email адрес.
  2. Бот передает собранные данный в запрос и получает адрес для депозита.
  3. При отправки адреса запускается горутина CheckStatusBuy. Таймер по умолчанию установлен на 2 минуты - время для депозита BTC. 4. По истечению этого времени бот прекращает мониторить эту операцию и выходит из горутины.
  4. Если деньги пришли вовремя, то бот отправляет уведомление новый депозит и начинает опрос пока у транзакции перевода BTC не будет 2 подтверждения.
  5. Как только это случилось, то бот отправляет уведомление, что обмен успешен и монеты BIP пришли на счет.

Продать BIP.

  1. При нажатии кнопки "Продать BIP" бот собирает данные: биткоин адрес (куда прислать btc с проданных BIP) и название монеты, цену за монету.
  2. Бот передает собранные данный в запрос и получает адрес для депозита и тэг.
  3. При отправки адреса запускается горутина CheckStatusSell. Таймер по умолчанию установлен на 2 минуты - время для депозита BIP.
  4. По истечению этого времени бот прекращает мониторить эту операцию и выходит из горутины.
  5. Если деньги пришли вовремя, то бот отправляет уведомление новый депозит.
  6. Лот сохраняется в базу данных.
  7. Каждый раз как только пользователь пишет боту, обновляется история его адреса и информация сколько было продано монет с лота.
  8. Если количество монет не изменилось с момента их внесения за неделю, то лот удалятся из базы данных.

Показать лоты на продажу.

  1. При нажатии на кнопку "Показать лоты на продажу" бот делает запрос к базе данных, получая все лоты, связанные с ID пользователя и отправляя ему: уникальный tag, название монеты, цену за монету, остаток монет, дату последней покупки монет и дату размещения лота.
 Tag:  FFY37X9kRfvf
 Coin:  MNT     Price:  1000
 Amount:  1000
 Minted address:  Mx1188d4944ceb8eb7bfed553a35461
 Created at:  2019-08-27 16:48:12
 Last sell at:  2019-08-27 16:52:26

База данных.

Реляционная база данных PostgeSQL 11. 

Таблицы

  • Users. Хранит язык, который выбрал пользователь.
create table if not exists users (
	id INT NOT NULL,
   	chat_id BIGINT NOT NULL,
   	lang VARCHAR(8),
   	PRIMARY KEY (id)
);
  • Loots. Хранит информации о размещении лота пользователем и истории продажи этих монет.
create table if not exists loots (
	id SERIAL,
	user_id INT NOT NULL,
	tag VARCHAR(255),
	coin VARCHAR(255),
	price INT,
	amount VARCHAR(255),
	minter_address VARCHAR(255),
	created_at timestamp,
	last_sell_at timestamp,
	PRIMARY KEY (id),
	FOREIGN KEY (user_id) REFERENCES users (id)
);