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
Monad
Unichain
Hyperliquid
Paradex
Mega Eth
Zenchain
Somnia
Recall
Enzo
Xrpl
теперь откручивать эти проекты можно абсолютно БЕСПЛАТНО 😱😱
@vsedozvoleno_soft_bot
переходи в бота и выбирай FREE DEMO на 7 дней
далее, для приобретения подписки, бонус -10% по промокоду VARTCALLподробнее про наш софт
работа софта
СОФТИМ ☠☠
пишите, какие проекты добавить ещё
Please open Telegram to view this post
VIEW IN TELEGRAM