Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
🪂New airdrop: Wrapped Bitcoin
🟢
💰 Reward: 5 #WBTC ($10)
👥 Referral: 10 $WBTC ($20)
🕰 Distribution: within 2 days
🔗Airdrop Link:https://t.me/WrappedBitcoinAirdropBot
-Complete all tasks of the airdrop
-Complete all tasks of the airdrop
-Submit your BSC wallet address
-For All Random lucky people
-The top 200 referrals can each get more WBTC tokens
Done ✅Done✅Done✅Done✅
⚠️Please remember: Only participate in completely free airdrops, never spend any penny for airdrop tokens
🚀 Major WBTC Investor Exits Position After 15 Hours with $12,000 Loss
An analyst @ai_9684xtpa posted on X that a significant investor, identified by the wallet address 0x0EA225f92408532403FbFE5357d5d94676F34a54, exited their position in Wrapped Bitcoin (WBTC) just 15 hours after entering. The investor initially purchased WBTC at a cost of $72,720.78, investing a total of $4.7 million. However, four hours ago, they sold 64.7 WBTC at $72,536, incurring a loss of $12,000.
#WBTC#Bitcoin#Crypto#Investment#Loss#Blockchain#Cryptocurrency
🟢شرکت دونالد ترامپ World Liberty Financial توکن های #ETH، #WBTC، #TRX، #AAVE، #LINK و #ENA را در 4 روز گذشته به قیمت 181،000،000 دلار خرید✔️
@ScorpionX_Co
Trump Family Crypto Project Moves Millions
The Trump family crypto project, World Liberty, executed a significant transaction today: exchanging 103.1493 WBTC for 3,075.198 ETH (approx. $9.9M) and 16.6199 WBTC for 1.7M USDT via Cow Protocol. Additionally, 11,917.635 ETH (valued around $38.4M) was transferred to Coinbase Prime.
Separately, $XRP has crossed a market cap of $155 billion.
Read more here.
#Trump#Crypto#WBTC#ETH#USDT#Coinbase#XRP#MarketCap#Blockchain#DigitalAssets#Investment#Finance#DeFi#CowProtocol#WorldLiberty#CryptoMarket#Altcoins#TokenExchange#CryptoTransactions#VC
😎The wrapped #BTC market has attracted close attention. Currently, #WBTC contributes a huge share to the #Ethereum#DeFi ecosystem. There are other options on the market. For example, #Coinbase and #Mantle announced the launch of #cbbc and #BBC. #BTCB, launched by #Binance, and #mBTC, launched by #Merlin, also have market sizes of $3.9 billion and $1.3 billion.
🦄#Uniswap вводит дополнительную комиссию в 0.15% за своп основных токенов через Интерфейс сайта uniswap.org
Очень последовательное убивание репутации Uniswap, после вброса про #KYC.
👑 На какие токены будет распространяться комиссия: #ETH , #USDC, #WETH, #USDT, #DAI, #WBTC, #agEUR, #GUSD, #LUSD, #EUROC, #XSGD
Knowledge Baze:
- Первое, что нужно знать пользователю в #DeFi, что фронтенд (сайт) проекта и протокол - это две разныe инфаструктуры. На сайте проекта можно сделать все что угодно и повесить любые комиссии, а на протоколе сделать ничего нельзя (ну кроме как взломать его);
- В случае с Uniswap есть два ЛПР - Uniswap Team (команда во главе с Hayden) и Uniswap Governance (ДАО протокола);
- Финансовые потоки и сами проекты никак не связаны друг с другом. Uniswap Team не имеет влияния на протокол, а только разрабатывает его новые версии и поддерживает сайт uniswap.org, а Uniswap Governance через токен и голосование может вводить комиссии и управлять самим протоколом.
Ситуация с комиссиями:
Uniswap Governance (DAO) уже давно пытается ввести комиссии на уровне самого протокола, для сбора доп.денег в токен UNI и treasury протокола. Постоянно обсуждаются такие инициативы, но дело с мертвой точки не двигается. Тут есть несколько проблем:
- комиссии, которые мог бы собирать протокол - крошечные и не повлияют никак на поддержку миллиардной капитализации $UNI токена;
- увеличивая комиссии протокола, провайдеры ликвидности начинают получать меньше дохода, что делает юнисвоп менее привлекательным чем другие DEX и может в долгосроке дать “капитальную течь”;
- нет налоговой регуляции в США для такого типа распределения в DeFi, это не дает возможности американцам правильно считать capital gain и taxes.
А вот как раз комиссий на фронтенде, которые забирает себе юрлицо Uniswap, как доход со свопов, ввести не представляет никакой сложности.
А что делают конкуренты:
🦄#1inch собирает комиссии используя новый инструмент Fusion (~0.5%)
🦊#Metamask в своих приложениях и расширениях собирает до 1% комиссий за своп - самый невыгодный курс обмена на рынке DEX, вообще не рекомендую там свопать
.. и не забываем про #MEV и сендвич атаки, которые иногда забирают до 100% комиссий с транзакции себе.
Как не платить DEXкомиссии в DeFi:
Самый простой и надежный способ - это использовать агрегатор HyperDEX, который работает напрямую через контракты #Uniswap (минуя любые доп.комиссии) и при этом дополнительно роутит ваши транзакции через пуллы различных дексов с наилучшей ликвидностью, что автоматически гарантирует вам лучший результат за своп.
Pro Tips:
Для защиты от MEV ботов и атак жетально использовать приватные RPC, например RPC от Ethermine и Flashbots. Устанавливаются вручную в ваш кошелек.
🔥 Рынок #DEX движется сейчас в двух направлениях - с одной стороны есть краткосрочные игроки, которые снижают комиссии и вознаграждают LP своими токенами (такие DEX в долгосрочной конкуренции всегда умирают) и есть #Uniswap который плавно внедряет комиссии и которые позволяют ему построить стабильный кеш флоу на долгие годы и пережить любых агресcивных конкурентов.