Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda