Что такое бандл
Бандл представляет собой группу от 1 до 4 транзакций, которые исполняются по порядку и по принципу «всё или ничего». Либо все транзакции бандла попадают в один блок в заданном вами порядке, либо не попадает ни одна. Используйте бандл, когда более поздняя транзакция имеет смысл только при успехе более ранней, например подготовительная транзакция, за которой следует своп.Правила
Чаевые подчиняются тому же правилу чаевых, что и одиночная отправка: один перевод SystemProgram верхнего уровня на опубликованный аккаунт для чаевых, оплаченный подписантом, с аккаунтом для чаевых в статических ключах. Эти чаевые за вычетом базовой комиссии 5,000 lamports становятся ставкой Jito за весь бандл. Поскольку бандл атомарен, чаевые выплачиваются, только если в блок попал весь бандл.
JSON-RPC sendBundle
Результатом является идентификатор бандла. Сохраните его, чтобы запрашивать статус бандла.
sendBundle также принимает {"encoding": "base58"} для транзакций в кодировке base58. Примеры ниже используют base64.
POST /send-bundle
Бинарный маршрут принимает тот же формат фреймов, что и/send-batch: для каждой транзакции длина u16 в big-endian и следующие за ней сырые байты транзакции, от 1 до 4 фреймов в порядке исполнения.
bundle.
Отслеживание бандла
ВызовитеgetInflightBundleStatuses с массивом идентификаторов бандлов:
landed_slot содержит слот, в который попал бандл, или null, если он ещё не попал в блок. status принимает одно из четырёх состояний:
Идентификатор бандла не меняется, пока Apex отправляет его повторно, поэтому продолжайте опрашивать тот идентификатор, который получили при отправке.
Обращайтесь к тому же эндпоинту Apex, на который вы отправили бандл. Идентификаторы бандлов не разделяются между эндпоинтами.
Поскольку бандл атомарен, вы также можете подтвердить его как любую транзакцию: как только любая из его подписей появляется как подтверждённая в
getSignatureStatuses на Solana RPC, весь бандл попал в блок.