Referencia sobre las categorías de sorteo, los contratos de ElyxS, Supra dVRF, cómo se guardan los premios, los pagos y la verificación de resultados.
Dirección de los contratos
En cada red, los módulos principales de ElyxS usan una sola dirección. Mainnet y Testnet pueden usar direcciones distintas. La red, la dirección y el enlace de SupraScan deben coincidir con los datos que muestra la interfaz de ElyxS.
Los contratos inteligentes usan tres categorías de sorteo: lotería (LOTTERY), jackpot (JACKPOT) y sorteo de usuario (USER_DRAW).
Que una función exista en el código no significa que esté disponible para los usuarios. La disponibilidad depende de la configuración y las reglas vigentes de los contratos.
Cuando alguien solicita un sorteo de usuario, las opciones disponibles pueden depender del estado del organizador. Antes de confirmar, la interfaz muestra las opciones disponibles para esa solicitud.
Cuando se acepta una solicitud de sorteo de usuario, el contrato fija sus condiciones. Los cambios posteriores en el estado del organizador no las modifican.
Cómo se organizan los contratos
Los contratos inteligentes se organizan en paquetes Move con responsabilidades diferentes:
draw_base- Datos compartidos de sorteos y organizadores, comprobaciones de autorización y vinculación de cada respuesta de Supra dVRF con la solicitud esperada.draw_user_rules- Validación y almacenamiento de las reglas de los sorteos de usuario, incluidas las opciones disponibles para el organizador.draw_data- Estado actual de sorteos y rondas, cancelaciones y derechos de reembolso.draw_engine- Venta de boletos, cambios de etapa y selección de ganadores.draw_finance_core- Reglas contables básicas para el jackpot y los reembolsos.draw_finance- Fondos en SUPRA, comisiones, ingresos del organizador, pagos de premios y reembolsos.draw_prize_assets- Almacenamiento de premios en otros tokens de Supra y NFT.draw_utils- Cálculos, historial, metadatos y lectura de datos de precios.draw_gateway- Funciones públicas para las transacciones de los usuarios y la lectura del estado.draw_vrf_gateway- Solicitudes de Supra dVRF, verificación de respuestas y repetición controlada cuando una respuesta se retrasa.SupraVrfyoracle_core- Conexión con los servicios de aleatoriedad y precios de Supra.
Para el usuario hay dos modelos de premio. El contrato puede guardar SUPRA, otro token de Supra o un NFT.
Si el organizador es responsable del premio, el contrato no lo guarda. El organizador responde de cualquier entrega prometida.
Las opciones que aparecen en el constructor dependen de las reglas vigentes y del estado del organizador.
Reglas aplicadas por los contratos
Los contratos aplican estas comprobaciones en las operaciones correspondientes:
- Cada ronda avanza por la participación, la solicitud de aleatoriedad y la selección de ganadores. Si el contrato guarda el premio, el ganador puede recibirlo después mediante el contrato. Si el organizador es responsable del premio, el contrato registra al ganador, pero no promete ni realiza la entrega. La cancelación y los reembolsos resultantes siguen una vía separada. Un sorteo de usuario completado no puede reiniciarse ni cancelarse.
- Una pausa bloquea nuevas ventas y solicitudes de aleatoriedad, pero no cambia el resultado de una solicitud ya enviada a Supra dVRF.
- Cada compra correcta añade una sola vez el número indicado de boletos. El procesamiento tardío o duplicado de la misma compra no aumenta la participación, y cada boleto emitido entra una sola vez en su ronda.
- Un resultado de Supra dVRF queda ligado a la red, la dirección del contrato, el sorteo, la ronda, la solicitud y el conjunto fijo de boletos. Una respuesta verificada no puede aplicarse de nuevo ni usarse en otro sorteo.
- Una solicitud de sorteo de usuario primero espera a ser procesada. Después, el sistema crea el sorteo o rechaza la solicitud; el organizador también puede cancelarla antes de que se cree el sorteo. Una vez creado, las huellas digitales de las reglas y la descripción no cambian.
- La participación es gratuita o de pago en SUPRA. Los demás tokens de Supra y los NFT no se aceptan como pago de boletos.
- Si el contrato guarda el premio, el organizador le entrega SUPRA, otro token de Supra o un NFT antes del sorteo. Una vez registrado el ganador, solo esa billetera puede reclamar el premio.
- Si el organizador conserva el premio, el contrato registra las reglas, los participantes y el ganador, pero no puede demostrar que el premio existe o que se entregó.
- Las reglas aceptadas, el método de participación, la forma de guardar el premio y las comisiones quedan fijados para cada sorteo. Los cambios en el estado del organizador o en las reglas generales de la plataforma no modifican esas condiciones.
- En un sorteo de usuario de pago, la cantidad ya abonada para crearlo se descuenta de la comisión de la plataforma calculada sobre la venta de boletos. El contrato reserva los ingresos del organizador hasta el pago.
- El contrato comprueba que su saldo en SUPRA cubre todos los pagos registrados: premios, reembolsos, comisiones e ingresos del organizador. Para otro token, comprueba la cantidad exacta. Para un NFT, comprueba el objeto elegido como premio.
- Una vez registrado el ganador, su derecho sobre un premio guardado por el contrato no caduca. El premio no puede devolverse al organizador, redirigirse a otra persona ni reclamarse más de una vez.
- Las compras, las solicitudes de aleatoriedad, los resultados, las reclamaciones de premios y los reembolsos se registran en el estado y los eventos de la cadena para que puedan verificarse de forma independiente.
Verificar un sorteo
Cada resultado de sorteo puede verificarse independientemente en la cadena:
- Busca el sorteo en
Hub -> Resultadosy usa su enlace de verificación. - Abre el registro VRF relacionado en SupraScan.
- Comprueba la red, la dirección del contrato, la categoría, el identificador del sorteo y la relación entre la solicitud dVRF y el sorteo.
- Compara el resultado de ElyxS con el registro de la cadena abierto desde la interfaz.
En un sorteo de usuario, compara también el estado de la solicitud, las huellas digitales de las reglas (rules_hash) y la descripción (content_hash), y quién guarda el premio.
Cuando corresponda, comprueba también el evento que confirma que el contrato recibió el premio.
Supra dVRF acredita el valor aleatorio, mientras que los registros del contrato muestran cómo se eligió al ganador. Si el organizador conserva el premio, estas pruebas no demuestran que lo haya entregado.
Consulta Verificar resultados de sorteos y Cómo leer SupraScan para ElyxS.