solana-labs / solana-program-library

A collection of Solana programs maintained by Solana Labs
https://solanalabs.com
Apache License 2.0
3.55k stars 2.07k forks source link

token-cli: Unable to use the token cli to transfer tokens that have the transfer-fee and transfer-hook extensions. #7059

Closed tonton-sol closed 2 months ago

tonton-sol commented 3 months ago

I am trying to test using the transfer-fee extension in conjunction with the transfer-hook extension. The transfer-hook is the provided example program given in this repository. The transfer hook extra account metas account is initialized but empty. I am running this command:

spl-token transfer --expected-fee <EXPECTED_FEE> <TOKEN_MINT_ADDRESS> <TOKEN_AMOUNT> <RECIPIENT_WALLET_ADDRESS>

It fails with error: Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb failed: custom program error: 0x7dc8348c My suspicion is that TransferCheckedWithFee is not correctly resolving the extra account metas.

I have already confirmed that this same transfer-hook program works and successfully transfers a token with only the transfer-hook extension.

Solution: Fix TransferCheckedWithFee to correctly resolve the required extra account metas.

joncinque commented 3 months ago

Thanks for your report! This is indeed an issue.

It looks like we'll need to do a few things to fix this properly.

tonton-sol commented 3 months ago

I will start on this!

joncinque commented 2 months ago

Resolved by #7171, thanks!