本文へスキップ
iCute Financeデジタル資産 · 市場分析
日本語
リサーチ目次
iCute Finance

メインナビゲーション

メインナビゲーション

デジタル資産 · 市場分析

命令フォールバックが見つかりません。エラー番号: 101。エラー メッセージ: フォールバック関数はサポートされていません。

Ademolaが述べたように、トランザクションのデータに命令識別子を提供する必要があります。 できることは、命令識別子をフェッチし、それをデータの最初の 8 バイトに追加することです。 Rustのフェッチ命令識別子 pub fn sighash(名前空間: &str, 名前: &str) -> [u8; 8] { let preimage = format!("{}:{}", 名前空間, 名前);

mut sighash = [0u8; 8]; ため息.copy_from_slice( &anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes() [..8]、 ); ため息 }

println!("{:?}", sighash("グローバル", "初期化"));

typescript でのディスクリミネーター命令のフェッチ 関数 sighash(nameSpace: 文字列, ixName: 文字列): バッファ { 名前 = snakeCase(ixName); にします。 let preimage = ${nameSpace}:${name}; return Buffer.from(sha256.digest(preimage)).slice(0, 8); }

名前空間はグローバルである必要があります これは Typescript の例です // 命令バッファを作成します const ixBuffer = sighash('global','initialize');

const命令Buffer = Buffer.concat([ ixBuffer, // 名前空間+メソッド名 OtherBuffer, // 命令に渡すその他のデータ。 ])

// 命令を作成する const トランザクション命令 = new トランザクション命令({ プログラム ID: プログラムアドレス、 データ: 命令バッファ、 キー: [ ... 】 })

ソースを見る CC BY-SA 4.0