💚 ИНТЕРАКТИВ
т.к завтра начинается наше обучение Solidity, предлагаю следующий эксперимент
задавайте самые интересные вопросы по ссылке ниже (все анонимно)
ЗАДАТЬ ВОПРОС 👈
🧠 авторы самых интересных вопросов получат бета-версию нашего обучения бесплатно
т.к завтра начинается наше обучение Solidity, предлагаю следующий эксперимент
задавайте самые интересные вопросы по ссылке ниже (все анонимно)
ЗАДАТЬ ВОПРОС 👈
🧠 авторы самых интересных вопросов получат бета-версию нашего обучения бесплатно
VARTCALL
💚 ИНТЕРАКТИВ т.к завтра начинается наше обучение Solidity, предлагаю следующий эксперимент задавайте самые интересные вопросы по ссылке ниже (все анонимно) ЗАДАТЬ ВОПРОС 👈 🧠 авторы самых интересных вопросов получат бета-версию нашего обучения бесплатно
получил много прекрасных вопросов
ссылка на опрос активна ещё 1 час - до 21 по Киеву 🤜🤛
Please open Telegram to view this post
VIEW IN TELEGRAM
“Где можно найти работу после курсов? на hh нет вакансий по solidity”
вакансии - удалёнка
cryptocurrencyjobs.co
web3.career
indeed.com
glassdoor.com/index.htm
также пост про фриланс
t.me/code_vartcall/770
как я нашёл работу?
публичный web3 чат в Telegram
задать вопрос 👈
вакансии - удалёнка
cryptocurrencyjobs.co
web3.career
indeed.com
glassdoor.com/index.htm
также пост про фриланс
t.me/code_vartcall/770
как я нашёл работу?
публичный web3 чат в Telegram
задать вопрос 👈
🔑 Как избежать потери точности при работе с процентами и дробными числами в Solidity?
разбор скрипта:
задать вопрос 👈
В Solidity нет поддержки чисел с плавающей точкой (float, double)
❗️❗️❗️все операции с процентами и дробями нужно реализовывать вручную с помощью целых чисел
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract PercentageMath {
uint256 public constant PERCENT_SCALE = 1e4; // 100.00%
function calculateFee(uint256 amount, uint256 percent) public pure returns (uint256) {
// Проверка переполнения (но в версии ^0.8 автоматическая)
return (amount * percent) / PERCENT_SCALE;
}
function subtractFee(uint256 amount, uint256 percent) public pure returns (uint256) {
uint256 fee = calculateFee(amount, percent);
return amount - fee;
}
/// @notice Пример: считает, какой процент составляет part от total
function calculatePercent(uint256 part, uint256 total) public pure returns (uint256) {
require(total > 0, "Division by zero");
return (part * PERCENT_SCALE) / total;
}
}
разбор скрипта:
calculateFee(uint256 amount, uint256 percent) - рассчитывает процент от суммы
subtractFee(uint256 amount, uint256 percent) - рассчитывает оставшуюся сумму после вычета комиссии:
calculatePercent(uint256 part, uint256 total) - считает, какой процент составляет часть от целого, в масштабе 1e4:
задать вопрос 👈
VARTCALL
🔑 Как избежать потери точности при работе с процентами и дробными числами в Solidity? В Solidity нет поддержки чисел с плавающей точкой (float, double) ❗️❗️❗️все операции с процентами и дробями нужно реализовывать вручную с помощью целых чисел // SPDX-License…
t.me/vartcall_brains
тем временем у нас осталось 2 места на Solidity Обучение
все подробности
@vartcall_support
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
VARTCALL BRAINS
База web3 для каждого
solidity
на сегодня все, все вопросы @vartcall_support
GN 🥱
самые интересные вопросы на сегодня 💚
Можно ли создать смарт-контракт solidity, который эволюционирует сам, меняет свою логику в зависимости от поведения
пользователей, транзакций и времени, причём без участия разработчика?
ссылка на ответ 👈
Почему использование struct иногда дешевле, чем отдельные переменные
ссылка на ответ 👈
на сегодня все, все вопросы @vartcall_support
GN 🥱
solana возвращение
наконец-то на канал возвращается solana, на постоянной основе
За последнее время было много постов и базы о ней, но теперь - только практика
БАЗА SOLANA
теперь каждый день параллельно EVM будем говорить и практиковать Solana
изучаем базу и начинаем!
наконец-то на канал возвращается solana, на постоянной основе
За последнее время было много постов и базы о ней, но теперь - только практика
БАЗА SOLANA
теперь каждый день параллельно EVM будем говорить и практиковать Solana
изучаем базу и начинаем!
solanaTx.js
2.5 KB
solana скрипт старт
почему solana? 👈
все примеры я буду показывать на JS/TS:
текстовый редактор
code.visualstudio.com
далее для работы скрипта локально - необходим node js
nodejs.org
установка библиотек
теперь начинаем разработку
далее будет...
сегодня разбираем все что необходимо для старта в solana разработке
почему solana? 👈
все примеры я буду показывать на JS/TS:
текстовый редактор
code.visualstudio.com
далее для работы скрипта локально - необходим node js
nodejs.org
установка библиотек
npm install --save @solana/web3.js
теперь начинаем разработку
🧠 написал небольшой скрипт
создаём два кошелька
запрашиваем отправителю 1 $SOL через airdrop
отправляем 0.1 $SOL на второй кошелёк
получаем ссылку эксплорера о нашей транзакции
explorer.solana.com/?cluster=devnet
далее будет...
прекрасная идея на этот лето
создаю отдельный чат на 100 человек, где буду с нуля учить Solana разработке
первый поток - 50 мест
❤️ твой доступ -
делаем делаем
Please open Telegram to view this post
VIEW IN TELEGRAM
tracker.js
4.2 KB
Solana Wallets Tracker
т.к Solana не обладает полноценным multicall, этот скрипт - решение проблемы
📖 справка
1 $SOL = 1,000,000,000 лампортов (наименьшая единица $SOL).
Используется Devnet кластер для безопасного тестирования.
делаем далее...
💸 Мониторинг Solana-кошельков в реальном времени:
т.к Solana не обладает полноценным multicall, этот скрипт - решение проблемы
printBalances():
Получает и выводит текущий баланс каждого адреса в SOL и лампортахprintTransactionHistories():
получает историю транзакций по каждому адресу и сохраняет в лог-файл.logToFile():
записывает любую информацию в файлtransaction_history.log.Подписка через onLogs():
Слушает новые события в сети (подтверждённые транзакции), выводит информацию в консоль и сохраняет в лог.
📖 справка
1 $SOL = 1,000,000,000 лампортов (наименьшая единица $SOL).
Используется Devnet кластер для безопасного тестирования.
RPC && Endpoints (подключение к блокчейну Solana)
Mainnet - https://api.mainnet-beta.solana.com (production)
Devnet - https://api.devnet.solana.com (developer experimentation)
Testnet - https://api.testnet.solana.com (validator testing)
Devnet - песочница для разработки
Testnet - подготовка перед миграцией в Mainnet
делаем далее...
Please open Telegram to view this post
VIEW IN TELEGRAM
💊2
БАЗА: VSE Solana Инструменты
🤜 Установка инструментов
для JS/TS - nodejs.org
после установки проверяем:
Установка SDK
🧠 Самые важные ссылки
Документация и гайды:
Solana Дока - solana.com/docs
Solana Cookbook (рецепты, примеры кода) - solanacookbook.com
🔎 Эксплореры и аналитика:
Solana Explorer (официальный)
Solscan - подробный эксплорер
SolanaFM (аналитика, история аккаунтов)
Xray (декомпиляция транзакций)
Explorer для Devnet
👑 Кошельки
Phantom
Solflare
Backpack
🐜 Devnet Инструменты:
Краны:
solfaucet.com
faucet.solana.com
Solana Status - мониторинг сети
status.solana.com
БАЗА! Двигаемся далее 😈
📖 глоссарий
Lamport - минимальная единица $SOL, как wei в Ethereum. 1 $SOL = 1 000 000 000 лампортов.
Account - всё — аккаунт: пользователь, контракт, или хранилище. Аккаунт может хранить данные и $SOL.
Program - Аналог смарт-контракта. Пишется на Rust и загружается как BPF bytecode.
Instruction - Один вызов функции из программы.
Transaction - Содержит инструкции и подписи. Может взаимодействовать с несколькими аккаунтами.
Rent - Чтобы аккаунт сохранялся в сети, он должен быть "rent-exempt" — иметь минимальный баланс.
Cluster - Сеть: mainnet-beta, devnet, testnet, localnet.
🤜 Установка инструментов
для JS/TS - nodejs.org
после установки проверяем:
node -v
npm -v
Установка SDK
npm install --save @solana/web3.js
🧠 Самые важные ссылки
Документация и гайды:
Solana Дока - solana.com/docs
Solana Cookbook (рецепты, примеры кода) - solanacookbook.com
SDK-клиенты:
JavaScript / TypeScript
Rust
Python
Java
Go
🔎 Эксплореры и аналитика:
Solana Explorer (официальный)
Solscan - подробный эксплорер
SolanaFM (аналитика, история аккаунтов)
Xray (декомпиляция транзакций)
Explorer для Devnet
👑 Кошельки
Phantom
Solflare
Backpack
🐜 Devnet Инструменты:
Краны:
solfaucet.com
faucet.solana.com
Solana Status - мониторинг сети
status.solana.com
БАЗА! Двигаемся далее 😈
👹 ОРЕНДУЕМ SOLANA
🧱 Rent-exempt - аккаунт освобождён от аренды, если у него на счету есть достаточно лампортов (минимальная сумма), чтобы покрыть пожизненное хранение данных в этом аккаунте
Как проверить и получить значение?
Solana SDK (JS/TS) предоставляет API для расчёта этой суммы:
💰 СКОЛЬКО ПЛАТИМ?
🌹 РАЗДЕВАЕМ SOLANA ДАЛЕЕ...
разберем оренду в солана
😈 для справки
В Solana каждый аккаунт, который хранит данные (не просто транзакции, а данные программ, кошельков и т.д.), обязан платить аренду за использование дискового пространства, пока он существует в блокчейне.
Это сделано для предотвращения засорения сети «мусорными» аккаунтами. ♻️
⌚️ Аренда взимается не в момент создания, а вычитается из баланса аккаунта со временем.
Если баланс аккаунта становится слишком маленьким — он может быть удалён из сети - reclaimed 😭
🧱 Rent-exempt - аккаунт освобождён от аренды, если у него на счету есть достаточно лампортов (минимальная сумма), чтобы покрыть пожизненное хранение данных в этом аккаунте
💵 Это одноразовая оплата, после которой арендная плата не взимается.😕 Это рекомендуемый способ работы с аккаунтами, особенно если хотите, чтобы аккаунт существовал постоянно
Допустим, создаём аккаунт, который хранит 100 байт данных.🪙 Solana потребует, чтобы вы депнули определённое количество лампортов, скажем, 890.880 лампортов, чтобы сделать аккаунт rent-exempt.
const lamports = await connection.getMinimumBalanceForRentExemption(dataSize);
Как проверить и получить значение?
Solana SDK (JS/TS) предоставляет API для расчёта этой суммы:
const lamports = await connection.getMinimumBalanceForRentExemption(dataSize);
🪴 КТО ПЛАТИТ АРЕНДУ?
Создаёшь токеновый аккаунт - создатель (инициатор транзакции)
Деплоишь программу - разработчик (создатель транзакции)
Создаешь PDA (program derived address) аккаунт - тот, кто вызывает инструкцию (обычно пользователь)
Делаешь Airdrop токена - отправитель (если он создаёт ATA)
💰 СКОЛЬКО ПЛАТИМ?
connection.getMinimumBalanceForRentExemption(dataSize)
dataSize - размер данных аккаунта в байтах.
Метод вернёт количество лампортов, которые нужно внести на аккаунт, чтобы освободить его от аренды навсегда😮
Размер аккаунта и необходимые лампорты (примерно)
0 байт ≈ 890.880 лампортов
100 байт ≈ 1.000.000+ лампортов
165 байт (ATA) ≈ 2.039.280 лампортов
ATA — обычный Solana аккаунт, но:
Он принадлежит твоему кошельку
привязан к конкретному токену
всегда имеет размер 165 байт
должен быть rent-exempt (иначе исчезнет)
почему 165 байт?🧠
этот размер фиксирован, потому что ATA хранит такую информацию:
Mint - 32 байта
Owner - 32 байта
Amount - 8 байт
Delegate info ≈ 40 байт
State flags, padding - остальное
🌹 РАЗДЕВАЕМ SOLANA ДАЛЕЕ...
Please open Telegram to view this post
VIEW IN TELEGRAM
солана соланой а игры по расписанию
youtu.be/FKd_tzQYm0Q
youtu.be/FKd_tzQYm0Q
youtu.be/FKd_tzQYm0Q
сегодня раздаём на мортисе 😈
youtu.be/FKd_tzQYm0Q
youtu.be/FKd_tzQYm0Q
youtu.be/FKd_tzQYm0Q
сегодня раздаём на мортисе 😈
SOFT ОБНОВЛЕНИЯ
лето 2025 - самое время для возвращения в отработку проектов
но делать все это вручную, тем более летом - впадлу
поэтому реализовали решение 💊
@vsedozvoleno_soft_bot
бот отработки крипто-активностей
🔑 переходи в бота, забирай свой Endpoint Ключ и выноси проекты
🍻 БОНУС
начинаем выносить...
лето 2025 - самое время для возвращения в отработку проектов
что делаю?
Monad
Unichain
Hyperliquid
Paradex
Mega Eth
Zenchain
Somnia
Recall
Enzo
Xrpl
но делать все это вручную, тем более летом - впадлу
поэтому реализовали решение 💊
@vsedozvoleno_soft_bot
бот отработки крипто-активностей
🔑 переходи в бота, забирай свой Endpoint Ключ и выноси проекты
📱 тажке добавлена возможность открутки аккаунтов, где вся рутина перекладывается на нас
🍻 БОНУС
-10% по промокоду VARTCALLначинаем выносить...
Media is too big
VIEW IN TELEGRAM
разберем, как все происходит внутри
👉 подробнее о софте 👈
@vsedozvoleno_soft_bot
-10% на все услуги, по промокоду VARTCALL🫀 начинаем неделю правильно
Please open Telegram to view this post
VIEW IN TELEGRAM