-
Notifications
You must be signed in to change notification settings - Fork 2.2k
createInitializeTransferFeeConfig failing when combined with other token extenstions #6410
Comments
You'll need to provide some more information in order to determine if this is a bug with any SPL libraries! |
// type spaces
const mintSpace =
getMintLen([ExtensionType.MetadataPointer]) +
getMintLen([ExtensionType.TransferFeeConfig]) +
getMintLen([ExtensionType.PermanentDelegate]);
const metadataSpace = TYPE_SIZE + LENGTH_SIZE + pack(metadata).length;
const lamports = await connection.getMinimumBalanceForRentExemption(
mintSpace + metadataSpace,
"confirmed"
);
const createAccountIx = SystemProgram.createAccount({
fromPubkey: payer.publicKey,
newAccountPubkey: mint.publicKey,
space: mintSpace,
lamports,
programId: TOKEN_2022_PROGRAM_ID,
});
const initializeMetadataPointerIx = createInitializeMetadataPointerInstruction(
mint.publicKey,
mintAuthority.publicKey,
mint.publicKey,
TOKEN_2022_PROGRAM_ID
);
const initializeTransferFeesConfigIx =
createInitializeTransferFeeConfigInstruction(
mint.publicKey,
transferFeeConfigAuthority.publicKey,
withdrawWithheldAuthority.publicKey,
50,
BigInt(5000),
TOKEN_2022_PROGRAM_ID
);
const initializePermanentDelegationIx =
createInitializePermanentDelegateInstruction(
mint.publicKey,
permanentDelegationAuthority.publicKey,
TOKEN_2022_PROGRAM_ID
);
const initializeMintIx = createInitializeMintInstruction(
mint.publicKey,
6,
mintAuthority.publicKey,
subzero.publicKey,
TOKEN_2022_PROGRAM_ID
);
const initializeMetadataIx = createInitializeInstruction({
programId: TOKEN_2022_PROGRAM_ID,
metadata: mint.publicKey,
updateAuthority: updataMetadataAuthority.publicKey,
name: metadata.name,
mint: mint.publicKey,
mintAuthority: mintAuthority.publicKey,
symbol: metadata.symbol,
uri: metadata.uri,
});
const updateMetadataIx = createUpdateFieldInstruction({
updateAuthority: updataMetadataAuthority.publicKey,
metadata: mint.publicKey,
programId: TOKEN_2022_PROGRAM_ID,
field: metadata.additionalMetadata[0][0],
value: metadata.additionalMetadata[0][1],
});
const transaction = new Transaction().add(
createAccountIx,
initializeMetadataPointerIx,
initializeTransferFeesConfigIx,
initializePermanentDelegationIx,
initializeMintIx,
//
initializeMetadataIx,
updateMetadataIx
);
try {
const txHash = await sendAndConfirmTransaction(connection, transaction, [
payer,
updataMetadataAuthority,
mint,
mintAuthority,
]);
console.log(`https://solscan.io/tx/${txHash}?cluster=devnet`);
} catch (err) {
console.log("error: ", err);
} |
@buffalojoec |
You're allocating too much data before initializing the mint. Calling const mintSpace = getMintLen([
ExtensionType.MetadataPointer,
ExtensionType.TransferFeeConfig,
ExtensionType.PermanentDelegate,
]); |
Hi @kasuba97, Thanks for your question! We want to make sure to keep signal strong in the GitHub issue tracker – to make sure that it remains the best place to track issues that affect the development of Solana itself. Questions like yours deserve a purpose-built Q&A forum. Unless there exists evidence that this is a bug with Solana itself, please post your question to the Solana Stack Exchange using this link: https://solana.stackexchange.com/questions/ask This automated message is a result of having added the ‘question’ tag. |
The text was updated successfully, but these errors were encountered: