Ошибка проверки подписи при передаче spl-токена в подключенный пользователем фантомный кошелек

          bs58.decode(
      "2YQDdnfxiHPKu9GypLX1yXaQTQojvDSPgFkDxrU********************************************"
    )


  const mintPubkey = 
    "A8SJfwzKJAaMrY6Lb*************************";

  const getProvider = async () => {
   
      // opens wallet to connect to
      await window.solana.connect(); 

      const provider = window.solana;
  
  }

  const network = "https://api.devnet.solana.com";
  const connection = new Connection(network);

  var provider = await getProvider()
  console.log(provider.publicKey.toString())

const userWalletPublicKey = provider.publicKey;

  var myMint = new PublicKey(mintPubkey);
  var myToken = new Token(
    connection,
    myMint,
    TOKEN_PROGRAM_ID,
    alice
  );

  const fromTokenAccount = await myToken.getOrCreateAssociatedAccountInfo(
    alice.publicKey,
  );

  const toTokenAccount = await myToken.getOrCreateAssociatedAccountInfo(
    userWalletPublicKey,
  );

  // Add token transfer instructions to transaction
  const transaction = new Transaction().add(
    Token.createTransferInstruction(
      TOKEN_PROGRAM_ID,
      fromTokenAccount.address,
      toTokenAccount.address,
      alice.publicKey,
      [],
      1,
    ),
  );

  transaction.recentBlockhash = (await connection.getRecentBlockhash()).blockhash;
  transaction.feePayer = userWalletPublicKey;

  const signedTransaction = await window.solana.signTransaction(transaction);
const signature = await connection.sendRawTransaction(signedTransaction.serialize());

когда я пытаюсь одобрить пересечение, это дает мне ошибку проверки подписи. Я использую библиотеку SPL-TOKEN и Solana web3 js. Правильно ли я реализовал токен spl-transfer с фантомом?

Ваша помощь в этом будет высоко оценена

в основном я пытаюсь сделать так, чтобы когда пользователь нажимал кнопку «Купить», он переводил nft, присутствующий в моем кошельке, в кошелек парня, который подключился и нажал «Купить».

0 ответов