Fò ó lọ sí àkóónú pàtàkì
ZYGY Research ZYGY ResearchPẹpẹ ìwádìí ohun-ìní oní-nọ́mbà
Yorùbá
← Ilé-ìkàwé ìbéèrè
technology

Ìtọ́niFallbackNotFound. Nọ́mbà Àṣìṣe: 101. Ìfiránṣẹ́ Àṣìṣe: Àwọn iṣẹ́ Fallback kò ní àtìlẹ́yìn

Ìdáhùn

O ní láti pèsè ìdánimọ̀ ìtọ́nisọ́nà sí dátà ìṣòwò rẹ gẹ́gẹ́ bí Ademola ti dárúkọ.
Ohun tí o lè ṣe ni gbé ìdánimọ̀ ìtọ́nisọ́nà wá kí o sì fi kún dátà rẹ ní báìtì 8 àkọ́kọ́.
Gbé Ìdánimọ̀ Ìtọ́nisọ́nà wá ní Rust
pub fn sighash(namespace: &str, name: &str) -> [u8; 8] {
let preimage = format!("{}:{}", namespace, name);

let mut sighash = [0u8; 8];
sighash.copy_from_slice(
&anchor_client::anchor_lang::solana_program::hash::hash(preimage.as_bytes()).to_bytes()
[..8],
);
sighash
}

println!("{:?}", sighash("global", "initialize"));

Gbé Ìtọ́nisọ́nà Ìdánimọ̀ wá ní typescript
function sighash(nameSpace: string, ixName: string): Buffer {
let name = snakeCase(ixName);
let preimage = `${nameSpace}:${name}`;
return Buffer.from(sha256.digest(preimage)).slice(0, 8);
}

namespace yẹ kí ó jẹ́ global
Àpẹẹrẹ kan ní Typescript
// Ṣe InstructionBuffer
const ixBuffer = sighash('global','initialize');

const instructionBuffer = Buffer.concat([
ixBuffer, // namespace+method_name
OtherBuffer, // Dátà mìíràn tí o fẹ́ fi ránṣẹ́ sí ìtọ́nisọ́nà.
])

// Ṣe Ìtọ́nisọ́nà
const transactionInstruction = new TransactionInstruction({
programId: programAddress,
data: instructionBuffer,
keys : [
...
]
})

solanaWo ìpilẹ̀CC BY-SA 4.0

Ṣàwárí àwọn ìbéèrè mìíràn