Sui.

Publicación

Comparte tu conocimiento.

Recompensa+15

Xavier.eth.
Jun 17, 2025
P&R expertos

¿Cómo interactúan las restricciones de capacidad con los campos dinámicos en colecciones heterogéneas?

Estoy creando un mercado que necesita gestionar varios tipos de activos con diferentes requisitos de capacidad, y me he planteado algunas preguntas fundamentales sobre el sistema de tipos de Move. Quiero almacenar diferentes tipos de activos en la misma colección, pero tienen diferentes capacidades:

  • NFT normales: key + store(transferibles)
  • Tokens Soulbound: key únicamente (no transferibles)
  • Activos personalizados con restricciones de transferencia
public struct Marketplace has key {
    id: UID,
    listings: Bag,  // Want to store different asset types here
}

// This works for transferable assets
public fun list_transferable<T: key + store>(
    marketplace: &mut Marketplace,
    asset: T,
    price: u64
) { /* ... */ }

// But how to handle soulbound assets?
public fun list_soulbound<T: key>(  // No store ability
    marketplace: &mut Marketplace,
    asset_ref: &T,  // Can only take reference
    price: u64
) { /* How do I store metadata about this? */ }

Preguntas clave:

  • Requisitos de habilidad: Cuando se usadynamic_field::add<K, V>(), ¿Vsiempre se necesita store en tiempo de compilación? ¿Pueden los tipos de contenedores solucionar esto?
  • Almacenamiento heterogéneo: ¿puede una sola bolsa almacenar objetos con diferentes conjuntos de habilidades (key + store + copycontrakey + store) y manipularlos de forma diferente durante el tiempo de ejecución?
  • Seguridad de tipos: dado que los campos dinámicos eliminan los tipos, ¿cómo puedo mantener la seguridad de los tipos al recuperar los valores? ¿Cuál es el patrón para almacenar los metadatos de tipo?
  • Patrón de testigos: ¿Cómo funcionan las restricciones de habilidad con los tipos de fantasmas? ¿Puedo Asset<Type1>``Asset<Type2>guardarlos en la misma colección y extraer la información de tipos más adelante?

Construir un sistema en el que los NFT, los tokens de soul bound y los activos restringidos requieran funciones de mercado, pero con una semántica de transferencia diferente.

He probado los tipos de contenedores, varias colecciones por conjunto de habilidades y el almacenamiento de metadatos de tipos separados. Cada uno tiene sus ventajas y desventajas entre la seguridad del tipo, los costos de la gasolina y la complejidad.

  • Sui
  • Architecture
0
0
Cuota
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.

Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.

325Publicaciones469Respuestas
Sui.X.Peera.

Gana tu parte de 1000 Sui

Gana puntos de reputación y obtén recompensas por ayudar a crecer a la comunidad de Sui.

Campaña de RecompensasJunio