No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Usando el ADN para calcular la imagen del NFT

20/24
Recursos

Aportes 5

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Reto
La razón es una limitación sobre cómo se pueden hacer referencia a las variables en la pila de EVM. Si bien puede tener más de 16 variables, una vez que intente hacer referencia a una variable en la ranura 16 o superior, fallará.

Algunas soluciones:

  1. Utilice menos variables
  2. Utilización de funciones
  3. Bloquear el alcance
  4. Utilizando estructuras

🤣

Documentación de Solidity:

La Maquina Virtual de Ethereum (EVM) tiene 3 areas donde puede guardar el almacenamiento:

  • El primero es “storage”, donde residen todas las variables de estado del contrato. Cada contrato tiene su propio almacenamiento y es persistente entre llamadas de función y bastante costoso de usar.

  • El segundo es “memory”, se utiliza para almacenar valores temporales. Se borra entre llamadas de funciones (externas) y es más barato de usar.

  • El tercero es stack, que se utiliza para contener pequeñas variables locales. Es de uso casi gratuito, pero solo puede contener una cantidad limitada de valores.

Para casi todos los tipos, no puede especificar dónde deben almacenarse, porque se copian cada vez que se usan.
En este articulo vi que si obtienes data por memory, consumes más gas que con storage.
Lo mismo que si seteas data, pero esta vez por storage, pasa que storage consume más gas que memory.
https://medium.com/coinmonks/ethereum-solidity-memory-vs-storage-which-to-use-in-local-functions-72b593c3703a

🤣🤣🤣Pequeñas dificultades técnicas…!

Por lo que entendí, en caso de no este mas disponible la api de avataaars y por ejemplo este disponible en avataaars2, solo debería escribir un contrato que interactúe con platzipunks.sol enviándole un parámetro con el string la nueva url de avataaars2 a la función _baseURI() y las imágenes serian nuevamente renderizables. ¿entendí bien?