-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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: