June 30, 2023

[DropHunt] WhiteBit

Настало время лутать ретродроп от самой крупной европейской биржи - WhiteBit.

Анонс дропа и краткое описание (на Старшей речи, пора учить, дальше по-русски):


WB Soul

WB Soul — это твое цифровое воплощение на нашем блокчейне. Это уникальный идентификатор, который является твоим мостом между биржей и WB Network. Его может создать любой пользователь WhiteBIT с KYC.

Для получения дропа и участия в экосистеме нам нужно связать свой профиль биржи и некастодиальный кошелек.

1. Регаемся на бирже если ещё нет аккаунта (асуждаю). Проходим КУС.

2. Переходим во вкладку Экосистема WB Soul.

3. Коннектим ваш кошелек и создаем свой WB Soul.
Все WB Souls в тестнете будут автоматически перенесены в мейннет.

Это займет пару секунд

Теперь в панели управления у нас есть статистика нашего WB Soul

Уровень WBT Hold даёт за холд токенов, именно холд, а не владение:

Поднимать уровень WBT Hold очень важно:
Существует 11 уровней WBT Holding. Чем выше у тебя уровень, тем больше вознаграждение. Активы, которые находятся в процессе выведения из Holding, не учитываются.

Но дорого. Вот уровни:

  1. 10 WBT≈ 52.44 USDT
  2. 200 WBT≈ 1,048.80 USDT
  3. 4,000 WBT≈ 20,976 USDT
  4. 10,000 WBT≈ 52,440 USDT
  5. 16,000 WBT≈ 83,904 USDT
  6. 30,000 WBT≈ 157,320 USDT
  7. 60,000 WBT≈ 314,640 USDT
  8. 100,000 WBT≈ 524,400 USDT
  9. 160,000 WBT≈ 839,040 USDT
  10. 2,000,000 WBT≈ 10,488,000 USDT
  11. 6,000,000 WBT≈ 31,464,000 USDT

EarlyBird Soulbound Tokens
! Каждый пользователь, участвующий в нашем тестнете, получит свой Souldbound Token из коллекции EarlyBird. Позже они будут автоматически перенесены в мейннет.

Это та штука, благодаря которой мы вероятно будем лутать всякие плюшки на будущих лаунчпадах, свапалках и раздачах внутри блокчейна.


Социальные задания - Zealy

Переходим на Zealy и делаем всё подряд. К счастью заданий куча.

Первые 3 задания - нажать кнопку клейм, вписать свой WB Soul ID(в панели управления) и нажать клейм и вписать свой подключенный кошелек и опять нажать клейм.

Дальше переходим в Discord проекта и нам становятся доступны задания по взаимодействию с твиттером, дискордом и контрибьюторству.


Тестнет

Тут нам ехидно говорят о том, что "конкретики не получите, попробуйте угадать".

Но мы волки стрелянные и знаем, за что блокчейны дают дроп - за взаимодействие.

Первое что мы делаем - добавляем себе сеть в кошелек и получаем тестовые токены.

Добавляем сеть (если по какой-то причине сайт не работает, внизу данные, впишите вручную в кошелек)

WB Network
https://rpc-testnet.whitebit.network
2625
WBT
https://explorer.whitebit.network

Через faucet получаем тестовый токен.

Теперь по активностям:
На данный момент у нас нет как таковых протоколов для взаимодействия, поэтому мы ограничены переводами коина, созданием и переводом токенов и нфт.

Минтин NFT

Ищем любую нфтшку в эксплорере

Главное чтобы у неё был верифицированный контракт.

https://explorer.whitebit.network/testnet/token/0xacca661da13501766905B278efD8368F4557F193/contract?tab=write

Подключаем кошелек и ищем функцию "mint"

Указываем кол-во нфт, которое мы хотим сминтить и подтверждаем в кошельке.

Когда подтвердите у вас появится ссылка "посмотреть транзакцию", если она в статусе "Success" то у вас всё получилось.

Поднимаем свой смарт-контракт

Переходим на сайт remix
Выбираем папку contracts (1) и на кнопку создать файл (2)

Создаем файл IWRC20.sol

В файл IWRC20.sol вставляем код:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IWRC20 {

function name() external view returns(string memory);

function symbol() external view returns(string memory);

function decimals() external pure returns(uint);

function totalSupply() external view returns(uint);

function balanceOf(address account) external view returns(uint);

function transfer(address to, uint amount) external;

function allowance(address _owner, address spender) external view returns(uint);

function approve(address spender, uint amount) external;

function transferFrom(address sender, address recipient, uint amount) external;

event Transfer(address indexed from, address indexed to, uint amount);

event Approve(address indexed owner, address indexed to, uint amount);

}

Створюємо файл ВашеНазваниеToken.sol

Вставляем в только что созданный файл следующий код:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IWRC20.sol";

contract WRC20 is IWRC20 {

uint totalTokens;

address owner;

mapping(address => uint) balances;

mapping(address => mapping(address => uint)) allowances;

string _name;

string _symbol;

function name() external view returns(string memory) {

return _name;

}

function symbol() external view returns(string memory) {

return _symbol;

}

function decimals() external pure returns(uint) {

return 18;

}

function totalSupply() external view returns(uint) {

return totalTokens;

}

modifier enoughTokens(address _from, uint _amount) {

require(balanceOf(_from) >= _amount, "not enough tokens!");

_;

}

modifier onlyOwner() {

require(msg.sender == owner, "not an owner!");

_;

}

constructor(string memory name_, string memory symbol_, uint initialSupply) {

_name = name_;

_symbol = symbol_;

owner = msg.sender;

mint(initialSupply, msg.sender);

}function balanceOf(address account) public view returns(uint) {

return balances[account];

}function transfer(address to, uint amount) external enoughTokens(msg.sender, amount) {

_beforeTokenTransfer(msg.sender, to, amount);

balances[msg.sender] -= amount;

balances[to] += amount;

emit Transfer(msg.sender, to, amount);

}

function mint(uint amount, address mint_to) public onlyOwner {

_beforeTokenTransfer(address(0), mint_to, amount);

balances[mint_to] += amount;

totalTokens += amount;

emit Transfer(address(0), mint_to, amount);

}

function burn(address _from, uint amount) public onlyOwner {

_beforeTokenTransfer(_from, address(0), amount);

balances[_from] -= amount;

totalTokens -= amount;

}

function allowance(address _owner, address spender) public view returns(uint) {

return allowances[_owner][spender];

}

function approve(address spender, uint amount) public {

_approve(msg.sender, spender, amount);

}

function _approve(address sender, address spender, uint amount) internal virtual {

allowances[sender][spender] = amount;

emit Approve(sender, spender, amount);

}

function transferFrom(address sender, address recipient, uint amount) public enoughTokens(sender, amount) {

_beforeTokenTransfer(sender, recipient, amount);

require(allowances[sender][msg.sender] >= amount, "check allowance!");

allowances[sender][msg.sender] -= amount;

balances[sender] -= amount;

balances[recipient] += amount;

emit Transfer(sender, recipient, amount);

}

function _beforeTokenTransfer(

address from,

address to,

uint amount

) internal virtual {}

}

contract TestToken is WRC20 {

constructor(address owner) WRC20("YOUR NAME", "YOUR TICKER", YOUR-TOTAL-SUPPLY*10**18) {}

}

YOUR NAME меняем на название токена, например: EAZY Token
YOUR TICKER меняем на тикер токена, например: EZT
YOUR-TOTAL-SUPPLY меняем на желаемое максимальное количество токенов в обороте, например: 10000000

Переходим во вкладку Deploy & Run transactions (1).

В пункте ENVIRONMENT (2) должно быть выбрано Injected Provider - Metamask (2), в пункте ACCOUNT должен подтянуться ваш кошелек Metamask в сети WB Network

Если все верно сделали, то должно показать наш адрес

Переходим во вкладку Solidity compiler и компилируем файл ВашToken.sol. Важно! Чтобы скомпилировать этот файл, он должен быть выбранным во вкладке файлов.

Переходим к вкладке Deploy & Run transactions.

В пункте CONTRACT должен быть указан наш токен. В пункте 10 вставляем адрес нашего кошелька Metamask, нажимаем Deploy и подтверждаем транзакцию в кошельке

Если все правильно сделали, то увидите зеленую галочку.

Переходим во вкладку Deployed Contracts и копируем адрес контракта.

Переходим в Metamask и нажимаем Import tokens/импорт токенов.

Вставляем наш скопированный адрес контракта в поле, остальные поля у нас подтянутся и нажимаем Add custom token.

Теперь у нас есть свой токен. Дальше мы его верифицируем в эксплорере:

Переходим в эксплорер блокчейна во вкладку верификации контракта.

Заполняем как на скрине:

Откроется панель, в которую нужно загрузить два файла - скачанных с ремикса IWRC.sol и второй с названием токена.

Верифицируем и теперь мы владелец верифнутого контракта, билдер так сказать.

Можно раскидать токены куда-то на рандомные адреса для взаимодействий или даже обменяться с владельцами других токенов.

На вопрос "что важнее, соц или тестнет?" я бы ответил - и то и то.
Ведь мы хотим вынести максимальный дроп.

Спасибо за внимание.

FAQ - больше про блог, поддержка проекта
Must to know. Материалы - знания, чтобы не быть ликвидностью.
На канале ещё много полезного контента на темы:
Трейдинга, психологии, абузов и прочих интересностей.

Крипта, кстати = скам