Модель доверия
Кто что может. Честный ответ, а не маркетинговый.
С 2026-10-02 почти каждый контракт протокола можно апгрейдить: владелец StockFun может заменить его код, с немедленным вступлением в силу. С 2026-10-05 числа протокола, от налога до цикла аирдропа, также являются ончейн-настройками владельца, тоже с немедленным вступлением в силу: цифры, которые приводит эта документация, — их значения по умолчанию; они перечислены ниже вместе с тем, что остаётся фиксированным. Каждое правило, которое эта документация приписывает модулю, — это правило его текущей имплементации. Вне полномочия на апгрейд: токены, лок ликвидности и, на Robinhood Chain, деплоер зеркальных волтов.
Чего не может никто
Эти пункты опираются на контракты, которые нельзя апгрейдить. Они остаются в силе, что бы владелец ни апгрейдил и ни настраивал.
- Минтить новые токены. Саплай минтится один раз, в конструкторе, и токены нельзя апгрейдить
- Переместить токены холдера без его разрешения. Сеттер токенов,
setRecorder, не перемещает балансы, а их функции спасения, с 2026-10-05, перемещают только то, что было отправлено на собственный адрес токена - Изъять ликвидность пула без публичного объявления за 30 дней. Лок нельзя апгрейдить, его единственный выход — режим завершения, описанный ниже, а его 30 дней — константа, а не настройка. Его функции спасения, с 2026-10-05, не достают ни до позиций, ни до долей комиссий, которые он удерживает для их получателей
- Изменить LP-комиссию или шаг тиков действующего пула. Каждый пул сохраняет те, с которыми был создан: они входят в его ключ, который хранит лок
Что исключает текущий код
При текущих имплементациях этого не может никто, включая владельца. Каждый пункт опирается на модуль, который владелец может апгрейдить.
- Добавить ликвидность в пул StockFun. С 2026-10-01 это может только лок ликвидности
- Заблокировать торговлю через кошелёк для комиссий или через волт. Во время сделки выплачивается только доля казны, и с 2026-10-05 волту, который её не принимает, эта сумма вместо этого причитается; остальные клеймятся позже
- Изменить состав корзины после создания
- Изменить ценовые фиды, которые читает существующий волт. Каждый фид записывается один раз, при инициализации оракула, и каждый волт сохраняет свой оракул; настройками являются интервалы актуальности (heartbeat) фидов, а с 2026-10-06 — и две защиты оракула на Robinhood Chain, которые могут только придержать цену, но никогда её не изменить
- Отправить токены байбэка
$STOCKFUNкуда-либо, кроме сжигания - Выбрать, кто получит аирдроп, или заклеймить чужую долю. Распределение следует из записанного владения, пропорционально, и клеймит только сам холдер
Что может создатель
- Получать строку создателя с каждой сделки на своём рынке, 2 % по умолчанию, и клеймить
её, с 2026-10-05 — на другой адрес, если он того хочет (
claimCreatorFeesTo) - Задавать вайтлист антиснайпа своего рынка, адреса из которого в первые блоки платят обычный налог: не более 20 адресов по умолчанию, зафиксированных в транзакции создания, публичных и неизменных в дальнейшем
- Покупать и продавать собственный токен, как любой другой участник
Он не получает аллокации, не контролирует ликвидность и не может поставить свой рынок на паузу. У него нет полномочий в отношении казны: он получает акции только так же, как любой холдер.
Что может кипер
Запускать конвертации — в момент по своему выбору, суммами, которые он указывает, по маршрутам, которые он предлагает. Всегда в пределах границ оракула волта и резерва каждой акции и никогда не выбирая, кто что получит. С 2026-10-01 пропуск акции больше не меняет веса корзины: эта акция сохраняет свою долю на потом. С 2026-10-05 волт сверяет то, что фактически приходит, с минимумом, который указывает кипер. С 2026-10-06 кипер конвертирует ETH волта раз за окно аирдропа, как решено 2026-09-27: это собственное правило кипера, которое волт не обеспечивает; волт лишь записывает, когда его ETH конвертировался в последний раз.
С 2026-10-05 он также единственный, кто отправляет батч моста (bridgeReady), и, вместе с
владельцем StockFun, единственный, кто заранее деплоит зеркальный волт рынка на Robinhood
Chain (predeploy). До этого и то и другое мог делать кто угодно. Удалённый хаб узнаёт
кипера из батча, поэтому до первого батча волт первого рынка заранее деплоит владелец
StockFun, а рынок, волт которого кипер не может задеплоить заранее, исключается из своего
батча.
В аирдропе, с 2026-10-04: открывать цикл рынка (openCycle), отправлять акции волта в
контракт аирдропа (sendToAirdrop, оплачивая комиссии LayerZero с Robinhood Chain) и
размещать отложенные акции (assignUnassigned). Он выбирает, когда, но никогда — сколько,
что, куда или кому: сумма — это баланс волта, адресат — контракт, который назначает
протокол, а распределение следует из владения. Открыть цикл или разместить отложенные
акции может кто угодно, с одним и тем же результатом, кто бы ни вызывал. Отправка,
поступившая после следующего времени закрытия, по умолчанию 13:00 UTC, измеряется по окну
следующего дня. Его ежедневный шаг написан с 2026-10-05: см. Кипер. С
седьмого цикла аудита, 2026-10-06, он отправляет акцию, только когда она стоит того, во
что обходится её отправка, и это решает лишь, когда эта акция уходит: то, что ждёт,
остаётся в волте до одного из следующих окон. С девятого, в тот же день, он также
указывает газ, который каждая доставка получает на Ethereum и который удалённый хаб
удерживает между нижним пределом и потолком, заданными владельцем StockFun, и со своего
собственного ключа повторно выполняет доставку, застрявшую на эндпоинте LayerZero на
Ethereum, что может сделать любой: ни то, ни другое не меняет того, что доставляется, и
куда.
С 2026-10-05 он также в каждом цикле выплачивает то, что хук и лок удерживают для
получателя, который это не принял (payTreasury, payOwed), и собирает LP-комиссии пула,
созданного с такой комиссией (collectFees). Эти три вызова может сделать любой, и они
платят только получателям, которых указывают контракты.
Его ключ — горячий ключ. Кипер никогда не выбирает, куда уходит актив.
Что может владелец StockFun
Именно здесь находится реальное доверие. Владелец StockFun — это владелец протокола: владелец фабрики на Ethereum, которого удалённый хаб отражает на Robinhood Chain.
- Апгрейдить каждый модуль, кроме токенов, лока ликвидности и деплоера зеркальных волтов, с немедленным вступлением в силу и без предварительного объявления. Волты апгрейдятся по одному, рынок за рынком, в обеих сетях
- Менять числа протокола, с немедленным вступлением в силу и без предварительного объявления: налог, его разбивку и антиснайп, комиссию за создание, форму новых рынков, порог конвертации и ценовые границы волтов, цикл аирдропа и остальные настройки, перечисленные ниже
- Запустить режим завершения лока и через 30 дней вывести всю ликвидность каждого пула,
включая ликвидность
$STOCKFUN, на любой адрес - Назначать регистратор владения, которому каждый токен сообщает о своих переводах. Если
сообщение не проходит, перевод не проходит: это единственное намеренное исключение из
правила, согласно которому один сбой никогда не блокирует остальное (см.
Архитектура), с двумя немедленными рычагами —
setRecorder(0), который останавливает запись токена, и апгрейдом регистратора на месте. С 2026-10-05 токен отказывается принимать регистратор, привязанный не к томуPoolManagerUniswap, в котором находится его пул. Регистратор апгрейдят на месте, что сохраняет его историю, и не заменяют на живом токене: с 2026-10-05 заменяющий регистратор начинает с саплая токена внеPoolManagerUniswap, поэтому торговля продолжается, а аирдроп не измеряет ни одного окна, начавшегося до него; но холдеров, движений которых он не видел, он считает ничего не державшими до их следующего движения, так что окно, захватывающее этот период, выплачивает им меньше и никому не выплачивает больше. До 2026-10-05 из-за нового регистратора не проходила ни одна продажа, и он ломал доли аирдропа в циклах, открытых после этого - Регистрировать корзины, до того как они будут заморожены
- Задавать однократно задаваемые адреса, один раз
- Назначать кипера и кошельки для комиссий. Клейм платит кошельку, назначенному на момент клейма, поэтому смена также перенаправляет баланс команды или байбэка, по которому ещё не было клейма
- Менять официальный своп-роутер, записанный в фабрике, — тот, через который хук распознаёт вайтлист антиснайпа
- Направлять будущие волты на другой роутер акций или реестр оракула; существующие волты сохраняют свои
- Сопоставлять каждую акцию корзины с её токеном на Robinhood Chain, только добавляя новые записи
- Задавать список исключений аирдропа для каждого токена, для окон, которые закроются после
этого (
setExclusions); регистрировать OFT каждой акции на Ethereum (registerStockOft) - Назначать контракт аирдропа, в который отправляют волты (
setAirdropDistributor); заменённый контракт сохраняет каждый свой цикл доступным для клейма там же. На Robinhood Chain — назначать маршрут аирдропа, контракт и газ каждой доставки (setAirdrop), а также адаптер каждой акции (setStockAdapter); с 2026-10-06 — задавать значение по умолчанию, нижний предел и потолок газа, который каждая доставка получает на Ethereum (setAirdropReceiveGas,setAirdropComposeGas) - Заменять адаптер моста для будущих отправок, немедленно (
changeAdapter), на адаптер с точно такими же привязками: тот же хаб, фабрика, денежные токены, удалённый хаб и пункт назначения. Аудит безопасности от 2026-09-29 обнаружил, что удалённый хаб отклонял бы батчи нового адаптера (M-2); 2026-10-05 владелец решил оставить всё как есть, поэтому адаптер меняют апгрейдом на месте, по тому же адресу - Ставить на паузу конвертации и отправку через мост, немедленно. Удалённый хаб на паузе всё равно применяет смены ролей, которые несёт каждый батч. На контракте аирдропа пауза останавливает отправки, открытия циклов и размещение отложенных акций, но никогда не клейм
- Перемещать любой актив из казны, хаба моста или контракта аирдропа на любой адрес,
немедленно и без предварительного объявления (
emergencyTransfer), в любой из сетей, в любой момент; на удалённом хабе, с 2026-10-05, также с отнесением на один рынок, чьи расчёты урегулируются в том же вызове (emergencyTransferFromPending,emergencyTransferRecord) - После такого перемещения из контракта аирдропа или удалённого хаба списывать потерю с
цикла или рынка, который её понёс (
writeDownCycle,writeDownUnassigned,writeOffPending,writeOffRecord, с 2026-10-05). Частичное списание с цикла возможно, только пока никто не заклеймил из него акцию, и тогда каждый холдер теряет одну и ту же долю; как только часть холдеров получила выплату, возможно только списание всего его остатка, который теряют холдеры, ещё не получившие выплату, а то, что поступает в цикл после этого, снова делится пропорционально между всеми его холдерами. Никакой другой рынок за потерю не платит; пока потеря не списана или активы не вернулись черезrestore, которую может вызвать кто угодно, выплаты недостающего ждут, а остальные продолжаются: клейм выплачивает другие акции. Оба контракта учитывают то, что обеспечивает их расчёты, и никогда — свой баланс: активы, которые находятся на пути к другому рынку, никогда не идут на покрытие потери, а простой перевод в эти контракты ничего не обеспечивает - Выводить то, что модуль держит по ошибке (
rescue, с 2026-10-05): ETH или токены, отправленные в модуль, который ничего ни для кого не хранит; случайные поступления хука, но никогда — то, что он должен; то, что лок держит сверх удерживаемых им долей комиссий, но никогда — его позиции; ETHBuybackBurner— только когда никакое сжигание уже не могло бы его потратить; то, что было отправлено на собственный адрес токена. См. Аварийный режим - Менять конфигурацию LayerZero у адаптеров акций аирдропа, без предварительного объявления и без лимита на вывод
Апгрейд — самое широкое из этих полномочий: он разом затрагивает каждое правило из второго списка выше. Вместе с настройками, режимом завершения, аварийным перемещением и конфигурацией адаптеров акций он означает, что StockFun не является trustless и не претендует на это. Казну охраняет протокол, а путь восстановления контролирует владелец.
Настройки
С 2026-10-05 числа протокола — это ончейн-настройки владельца StockFun, в обеих сетях. Каждая вступает в силу в той транзакции, которая её задаёт, без предварительного объявления, генерирует событие и отклоняет невозможные значения: ставку выше 100 %, разбивку больше налога, форму запуска, которую пул не может вместить. Ниже — значения по умолчанию, те, что приводит эта документация.
| Настройка | По умолчанию | Где задаётся |
|---|---|---|
| Налог на каждую сделку, покупки и продажи | 5 % | Хук, setTaxSettings |
| Его строки на запущенном рынке: казна, создатель, команда; байбэк получает остаток | 2 %, 2 %, 0,5 %; байбэк 0,5 % | Хук, setTaxSettings |
Его строки на рынке $STOCKFUN: казна, команда; байбэк получает остаток |
2 %, 2,5 %; байбэк 0,5 % | Хук, setTaxSettings |
| Антиснайп: налог в открывающем блоке, снижение за блок, сколько блоков он длится | 80 %, 8 пунктов, 10 блоков | Хук, setTaxSettings |
| Наибольший вайтлист антиснайпа одного рынка | 20 адресов | Хук, setTaxSettings |
| Комиссия за создание, выплачиваемая на кошелёк команды | 0,001 ETH | Фабрика, setCreationFee |
| Ограничения длины для нового рынка: тикер, название, URI изображения, описание | от 2 до 10, 48, 256, 512 байт | Фабрика, setStringLimits |
| Форма новых рынков: саплай, диапазон 1, тики, шаг тиков, LP-комиссия | 1 000 000 000 токенов, 700 000 000 в диапазоне 1, тики 195 000 / 171 960 / −887 220, шаг 60, без LP-комиссии | Фабрика, setLaunchConfig |
То, что собирают заблокированные позиции, сторона ETH: доли волта рынка и команды; создатель, или команда на $STOCKFUN, получает остаток |
50 %, 25 %; создатель 25 % | Фабрика, setLpFeeShares |
| Наименьшая сумма, которую конвертирует волт, и его ценовые границы относительно оракула на ETH → USDC и на покупке акции | 0,1 ETH, 50 bps, 200 bps | Фабрика, setConversionParams |
| Ценовая граница покупок зеркальных волтов | 200 bps | Удалённый хаб, setStockMaxSlippageBps |
| Интервалы актуальности (heartbeat) оракулов: ETH/USD, каждой акции | 1 час и 1 день в скриптах деплоя | Оракул каждой сети, setEthUsdHeartbeat, setHeartbeat |
| Проверка секвенсора: фид аптайма секвенсора L2 от Chainlink и льготный период после перезапуска, в течение которого оракул придерживает каждую цену (с 2026-10-06) | Выключена: для Robinhood Chain такого фида нет, поэтому деплой проходит с выключенной проверкой; 3 600 секунд льготного периода, когда фид задан | Оракул каждой сети, setSequencerUptimeFeed; выключена на Ethereum |
| Пауза оракула каждой акции: её цена придерживается, пока её токен сообщает, что его оракул на паузе из-за корпоративного действия (с 2026-10-06) | Включена для каждой акции Robinhood Chain, выключена на Ethereum | Оракул каждой сети, setOraclePauseCheck, по каждой акции |
| Окна аирдропа: длина, время закрытия | 24 часа, 13:00 UTC | Контракт аирдропа, setCycleSchedule |
Лимиты аирдропа: наибольший список исключений, число окон, которые проверяет один вызов assignUnassigned |
16, 30 | Контракт аирдропа, setMaxExcluded, setMaxWindowsPerAssign |
| Эндпоинт LayerZero аирдропа и сеть-источник | Как при деплое | Контракт аирдропа, setLayerZero |
| Мост USDG: худший курс USDG за USDC на Curve и часть последнего шага батча на Robinhood Chain, нужная каждому батчу (до десятого цикла аудита — одна цифра на весь шаг, 1 200 000) | 30 bps, 200 000 газа | UsdgOftAdapter, setSettings |
| Батч моста USDG: газ, который каждый рынок батча добавляет к этому шагу, и наибольшее число рынков, которое несёт один батч, заданное размером сообщения LayerZero (с десятого цикла аудита; газ самого большого батча не превышает 24 000 000 при любых настройках) | 400 000 газа, 17 рынков | UsdgOftAdapter, setBatchGas |
| Канонический мост: газ двух его тикетов, стоимости подачи которых служат нижними пределами | Как при деплое | ArbitrumCanonicalAdapter, setTicketGas |
| Канонический мост: число байтов, по которому рассчитывается стоимость тикета депозита | 1 024 | ArbitrumCanonicalAdapter, setDepositCalldataLength |
| Записи, которые оплачивает один sweep на удалённом хабе | 64 | Удалённый хаб, setMaxRecordsPerSweep |
Газ lzReceive каждой доставки аирдропа на Ethereum сверх того, что задаёт OFT акции: значение по умолчанию, нижний предел и потолок того, что запрашивает кипер (с 2026-10-06) |
650 000, 200 000, 1 500 000 | Удалённый хаб, setAirdropReceiveGas |
| Газ compose каждой доставки аирдропа на контракте аирдропа: значение по умолчанию, нижний предел и потолок (одна цифра, 600 000, до 2026-10-06) | 1 250 000, 600 000, 4 000 000 | Удалённый хаб, setAirdropComposeGas; значение по умолчанию — также через setAirdrop |
- Каждый пул, со следующего свопа. Изменение налога или антиснайпа применяется со следующего свопа в каждом пуле, включая пул, который ещё находится в блоках антиснайпа: убывание рассчитывается по действующим настройкам, от блока запуска пула. Антиснайп никогда не берёт меньше налога. Лимит вайтлиста применяется при создании рынка
- Только новые рынки, для их формы. Новый саплай, новые диапазоны, новый шаг тиков или
новая LP-комиссия применяются к рынкам, созданным после этого. Каждый пул сохраняет
LP-комиссию и шаг тиков, с которыми был создан, и Lens отдаёт их, рынок за рынком; пул
$STOCKFUNполучает те, что действуют на момент его запуска - Вживую, для волтов. Каждый волт читает порог конвертации и свои ценовые границы при каждой конвертации, а лок читает доли LP-комиссий при каждом сборе
- Открытые циклы сохраняют своё окно. Новое расписание аирдропа применяется к окнам, которые ещё не открыты, и перекраивает их, включая те, которые ещё предстоит проверить для отложенных акций
Что остаётся фиксированным:
- Предварительное объявление режима завершения за 30 дней,
END_DELAY, — константа лока ликвидности, который нельзя апгрейдить - Немедленность аварийного перемещения: у него нет задержки, и никакая настройка не может её добавить
- Единицы и кодировки: базисный пункт, час как единица записи владения и окон аирдропа, адрес сжигания, форматы сообщений
- Связи между контрактами: ценовые фиды, пулы, на которых покупает роутер акций на Ethereum, OFT USDG, эндпоинты LayerZero моста, удалённый хаб, пул Curve. Они фиксируются при деплое или записываются один раз; чтобы изменить что-то из этого, нужно указать другой контракт, а это требует апгрейда
Апгрейды
С 2026-10-02 каждый модуль — это прокси с апгрейдом через UUPS, кроме контрактов, перечисленных ниже. Как это устроено: см. Архитектура.
| Сеть | Кто выполняет апгрейд | Модули |
|---|---|---|
| Ethereum | Владелец фабрики: каждый модуль спрашивает у фабрики, кто её владелец | Сама фабрика, хук, регистратор владения, каждый TreasuryVault, оракул, роутеры акций, официальный своп-роутер, BuybackBurner, Lens, хаб моста и его адаптеры, контракт аирдропа |
| Robinhood Chain | Администратор аварийного режима удалённого хаба: владелец в Ethereum, каким его передал последний батч моста, а до первого батча — начальный администратор, назначенный при деплое | Сам удалённый хаб, каждый зеркальный волт, роутер акций, оракул |
- Немедленно. Апгрейд вступает в силу в той транзакции, которая его выполняет: без таймлока, без предварительного объявления, как и настройки и аварийное перемещение
- С проверкой. Апгрейдить может только владелец протокола. Новая имплементация должна
подчиняться тому же источнику прав на апгрейд, а имплементации хука и регистратора
владения должны сохранять тот же
PoolManager - Рынок за рынком. Каждый волт — отдельный прокси. Новая имплементация волта, указанная в фабрике, применяется к рынкам, созданным после этого; существующие волты апгрейдятся по одному
- Хранилище дополняется, но не переупорядочивается. Раскладка хранилища каждого модуля записана, и скрипт проверяет её перед каждым апгрейдом, с 2026-10-05 — на всех уровнях вложенности каждой структуры
Апгрейдить нельзя:
- Токены — токены рынков и
$STOCKFUN: простые ERC-20, саплай которых минтится один раз, без минта, сжигания, паузы или блэклиста. Их единственный сеттер,setRecorder, и их функции спасения принадлежат владельцу протокола - Лок ликвидности, код которого и удерживает ликвидность в пулах. Его единственный выход для ликвидности — режим завершения; его функции спасения не достают ни до позиций, ни до удерживаемых им долей
- Деплоер зеркальных волтов на Robinhood Chain: адрес каждого зеркального волта выводится из его собственного адреса
Два деплоера на Ethereum, которые не хранят состояния, заменяются через фабрику, а не апгрейдятся.
Режим завершения
Единственный выход из лока ликвидности, добавленный 2026-10-02 на случай закрытия проекта.
Владелец StockFun вызывает end(). С этого момента ни один новый рынок не может быть
запущен, а торговля во всех пулах продолжается. Через тридцать дней владелец может вывести
всю ликвидность каждого пула на любой адрес. Пока завершение ожидает исполнения, владелец
может в любой момент его отменить; пулы, из которых ликвидность уже выведена, остаются
пустыми. 30 дней — это срок предварительного объявления для холдеров. Подробнее — в
разделе Запуск с двумя позициями.
Внешние зависимости
| Зависимость | Что она может сломать |
|---|---|
| Paxos / USDG | Может поставить на паузу или заморозить. Денежное звено канала останавливается. С 2026-10-05 заморозка одного зеркального волта останавливает только доставки в этот волт: его доля ждёт на удалённом хабе, причитаясь его рынку, а остальные рынки получают выплату (R2H-2, закрыта) |
| LayerZero | Потерянное сообщение оставляет средства в пути до повторной отправки или восстановления. С 2026-09-28 от него также зависит сохранность обёрнутых акций аирдропа |
| Robinhood Chain | Молодая сеть. Сбой замораживает акции, которые там находятся. С 2026-10-06 оракул может также придерживать каждую цену, пока фид аптайма секвенсора от Chainlink сообщает, что секвенсор не работает или только что восстановился; эта проверка выключена, пока Chainlink не опубликует такой фид для Robinhood Chain, чего он не сделал |
| Фиды Chainlink | Устаревший фид блокирует конвертацию, которой он нужен; с 2026-10-05, для акции, — только звено этой акции. С 2026-10-06 то же делает корпоративное действие: пока токен акции сообщает, что его оракул на паузе, фид держит своё последнее значение, а оракул придерживает цену этой акции, поэтому её звено ждёт, её деньги сохраняются для неё, а остальные покупают. Это задуманное поведение |
| Вторичная ликвидность | Если пулы слишком тонкие, кипер покупает меньшими частями, а ценовая граница, 200 bps по умолчанию, отклоняет то, что всё равно не может исполниться |
Ни одна из этих зависимостей не скрыта, и ни одна не может переместить актив из волта на какой-либо адрес.
Принятые риски
- Апгрейд, изменение настройки и аварийное перемещение вступают в силу сразу: холдеры не получают о них предварительного объявления, в отличие от режима завершения, объявляемого за 30 дней
- Каждый перевод токена зависит от регистратора владения: если сообщение не проходит,
перевод тоже не проходит. Это единственное намеренное исключение из правила, согласно
которому один сбой никогда не блокирует остальное: если бы сообщению было позволено не
пройти, холдер мог бы обойти запись и увеличить свою долю аирдропа. Его рычаги
немедленные:
setRecorder(0)на токене или апгрейд регистратора на месте - Доля, которую получатель не принимает, ждёт этого получателя — на хуке, в локе, на удалённом хабе или в контракте аирдропа, — вместо того чтобы останавливать остальное; а аварийное перемещение, не отнесённое ни на один рынок, заставляет выплаты этого актива ждать, пока оно не будет урегулировано
- Ни одна казна не накапливается: всё распределяется, и аирдроп может быть нулевым, если никто не торгует
- Аирдроп выплачивается обёрнутыми акциями на Ethereum: их ценность держится только на акциях, заблокированных на Robinhood Chain, и на конфигурации LayerZero, а заморозка Stock Tokens их эмитентом сделала бы заблокированные акции недоступными
- Рынок может никогда не исчерпать свой первый диапазон ликвидности
- Цикл покупки и продажи обходится в 9,75 % без учёта движения цены, при налоге 5 % по умолчанию
- На момент написания этой документации кросс-чейн канал не проверялся в реальных условиях