Publicación
Comparte tu conocimiento.
How to ensure a smart contract doesn't resend a capability?
I'm working on a smart contract and I want to ensure that it doesn't send a capability if the user already owns one. This is to avoid unwanted transactions. I am thinking about using an SDK to check all objects a user holds and perhaps using a sui::table::Table
to keep a list of minted capabilities. Is this the right approach, or is there a better way to confirm if an address holds a certain object on-chain?
- Move CLI
- Move
Respuestas
3Una sugerencia para su caso práctico es mantener una lista de las direcciones que han tenido una capacidad acuñada en un objeto compartido. Puede administrar las restricciones de tamaño de los objetos mediante unsui::table::Table
, que le permite mantener una lista o un mapa de manera eficiente.
Puedes intentar usar el SDK para comprobar si hay todos los objetos que un usuario guarda fuera de la cadena. Esto podría ayudarte a validar la propiedad sin afectar al flujo de contratos dentro de la cadena.
Es posible que no necesites una verificación en cadena para este caso práctico. Si quieres que los usuarios demuestren que son propietarios de un objeto, pídeles que introduzcan un comprobante de propiedad.
Sabes la respuesta?
Inicie sesión y compártalo.