Перейти к основному содержимому
iCute FinanceЦИФРОВЫЕ АКТИВЫ · ОБЗОР РЫНКА
Русский
Каталог исследований
iCute Finance

Основная навигация

Основная навигация

ЦИФРОВЫЕ АКТИВЫ · ОБЗОР РЫНКА

ИнструкцияFallbackNotFound. Номер ошибки: 101. Сообщение об ошибке: Резервные функции не поддерживаются.

Вы должны предоставить дискриминатор инструкций для данных вашей транзакции, как упоминал Адемола. Что вы можете сделать, так это получить дискриминатор инструкций, а затем добавить его к своим данным в первых 8 байтах. Дискриминатор инструкций выборки в Rust паб fn Sighash (пространство имен: &str, имя: &str) -> [u8; 8] { let preimage = format!("{}:{}", namespace, name);

пусть mut sighash = [0u8; 8]; вздох.copy_from_slice( &anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes() [..8], ); сигаш }

println!("{:?}", Sighash("глобальный", "инициализировать");

Инструкция получения дискриминатора в машинописном тексте функция sighash(nameSpace: string, ixName: string): Buffer { пусть имя = SnakeCase (ixName); let preimage = ${nameSpace}:${name}; return Buffer.from(sha256.digest(предварительное изображение)).slice(0, 8); }

пространство имен должно быть глобальным Вот пример в Typescript // Создание буфера инструкций const ixBuffer = Sighash('глобальный','инициализация');

const инструкцияBuffer = Buffer.concat([ ixBuffer, // пространство имен+имя_метода OtherBuffer, // Другие данные, которые вы хотите передать инструкции. ])

// Создаем инструкцию const transactionInstruction = новая TransactionInstruction({ идентификатор программы: адрес программы, данные: инструкцияБуфер, ключи: [ ... ] })

Просмотреть источник CC BY-SA 4.0