Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
Candy Machine V2: tratando de obtener todos los nft creados por una máquina de dulces

Estoy tratando de averiguar todos los nft que fueron creados por una máquina de dulces. Estoy tan confundido con el v2. Esto es lo que he hecho hasta ahora.

 async function getProgramAccounts( connection, programId, configOrCommitment, ) { const extra = {}; let commitment; //let encoding; if (configOrCommitment) { if (typeof configOrCommitment === 'string') { commitment = configOrCommitment; } else { commitment = configOrCommitment.commitment; //encoding = configOrCommitment.encoding; if (configOrCommitment.dataSlice) { extra.dataSlice = configOrCommitment.dataSlice; } if (configOrCommitment.filters) { extra.filters = configOrCommitment.filters; } } } const args = connection._buildArgs([programId], commitment, 'base64', extra); const unsafeRes = await (connection)._rpcRequest( 'getProgramAccounts', args, ); return unsafeRes.result; }

Según el chat de discordia metaplex anterior. Necesito obtener el primer creador que con esta función

 const deriveCandyMachineV2ProgramAddress = async ( candyMachineId, ) => { const candyMachineID = new PublicKey(candyMachineId); return await PublicKey.findProgramAddress( [Buffer.from('candy_machine'), candyMachineID.toBuffer()], candyMachineProgram, ); };

para obtener las tablas hash de la siguiente manera

 const fetchHashTable = async (hash, metadataEnabled) => { const connection = new web3.Connection( process.env.REACT_APP_SOLANA_RPC_HOST ); const creatorKey = await deriveCandyMachineV2ProgramAddress(hash) const metadataAccounts = await getProgramAccounts( connection, { filters: [ { memcmp: { offset: 1 + 32 + 32 + 4 + MAX_NAME_LENGTH + 4 + MAX_URI_LENGTH + 4 + MAX_SYMBOL_LENGTH + 2 + 1 + 4 + 0 * MAX_CREATOR_LEN, bytes: creatorKey, }, }, ], } ); const mintHashes = []; for (let index = 0; index < metadataAccounts.length; index++) { const account = metadataAccounts[index]; const accountInfo = await connection.getParsedAccountInfo(account.pubkey); const metadata = new Metadata(hash.toString(), accountInfo.value); if (metadataEnabled) mintHashes.push(metadata.data); else mintHashes.push(metadata.data.mint); } console.log(mintHashes, 'minthashes') return mintHashes; };

El problema es que mi función getProgramAccounts no devuelve nada.

¿Alguien puede decirme qué estoy haciendo mal?

Gracias

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

derivaCandyMachineV2ProgramAddress debe devolver una matriz con 2 valores, por lo que para obtener la clave del creador necesita acceder al primer elemento: const [creatorKey] = await deriveCandyMachineV2ProgramAddress(hash) y esto devolverá una interfaz de clave pública, así que simplemente cambie bytes: creatorKey a bytes: creatorKey.toBase58()

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!