Peera.

Más reciente

Mantente actualizado con las últimas publicaciones.

Publicaciones

1829
  • skywinder.Peera.
    ParaMoveApr 10, 2025
    P&R expertos

    ¿Qué es una función nativa? ¿Podemos llamarla directamente?

    He encontrado el término «función nativa» en Move, pero no puedo encontrar información detallada al respecto. Escuché que se declaran en Move pero se definen externamente, a menudo en Rust. ¿Significa eso que son funciones internas a las que las carteras u otros módulos no pueden invocar directamente?

    • Move CLI
    • Move
    0
    1
  • kryptoschain.Peera.
    ParaMoveApr 10, 2025
    P&R expertos

    ¿Cómo transferir un objeto propiedad de otro objeto?

    Tengo problemas al transferir un objeto A, que es propiedad del objeto B, y el objeto B me pertenece a mí. Recibo un error que indica que la transacción no ha sido firmada por el remitente correcto. ¿Alguien sabe cómo resolver esto y recibir correctamente el objeto A?

    • Move CLI
    • Move
    0
    1
  • Michelle .Peera.
    ParaSuiApr 10, 2025
    P&R expertos

    ¿Por qué la billetera de mi robot comercial se bloquea hasta la próxima época?

    He tenido un problema en el que mi monedero de operaciones, que utiliza un bot, suele recibir un error que dice: «No se ha podido firmar la transacción por parte de un quórum de validadores...» Esto hace que la cartera quede bloqueada hasta la próxima época, a veces durante horas. Aparece especialmente después de que se agote el tiempo de espera del RPC durante una transacción. ¿Por qué ocurre esto y cómo se puede solucionar para evitar bloqueos tan largos?

    • Sui
    0
    0
  • McMMoKing.Peera.
    ParaWalrusApr 10, 2025
    P&R expertos

    How to upload large files to Walrus without speed issues?

    I'm trying to use Walrus for uploading files via API and I'm running into issues when trying to upload a 300MB file. While it works with the CLI, the upload speed is slow. Is there a file upload limit with Walrus, and how can I improve upload speeds for larger files?

    • Walrus
    • Typescript SDK
    0
    2
  • DuAn.Peera.
    ParaWalrusApr 10, 2025
    Discusión

    How does Walrus compare to AO and others?

    I'm trying to understand the difference between Walrus and AO. From a functional perspective, how do they compare, especially considering their relationship with Sui and Arweave? Also, how does this comparison extend to Sui and Arweave specifically?

    • Walrus
    0
    0
  • AFL.Peera.
    AFL153
    ParaPolygonApr 10, 2025
    Discusión

    ¿Cómo integrar el puente Polygon Portal para transferir USDT?

    Actualmente estoy trabajando en un proyecto en el que necesito integrar el puente Polygon Portal en una cartera para facilitar la transferencia del USDT. ¿Hay documentación o recursos disponibles que puedan ayudarme a entender cómo funciona este puente?

    • Polygon PoS
    0
    2
  • Pluto Dev👽.Peera.
    ParaMoveApr 10, 2025
    P&R expertos

    Conversión de una clave pública en una dirección Sui en Sui Move

    Estoy intentando convertir una clave pública en una dirección Sui usando Sui Move, pero no puedo encontrar ninguna función integrada. Entiendo que es muy importante para mi trabajo. ¿Alguien podría explicar cómo hacer exactamente esta conversión?

    • Move CLI
    0
    1
  • Xavier.eth.Peera.
    ParaSuiApr 10, 2025
    Discusión

    ¿Cómo transferir la SUI de una billetera estándar a una billetera Ledger?

    He conectado mi Ledger a una billetera SUI recién creada y funcionó bien. Ahora quiero transferir mi SUI de mi monedero SUI «estándar» a mi monedero SUI «Ledger». ¿Hay algún método abreviado o tengo que enviar la SUI de una dirección a otra, como cuando envío fichas a bolsas? Quiero asegurarme de que este proceso sea seguro.

    • Transaction Processing
    0
    1
  • 1 Luca.Peera.
    ParaMoveApr 10, 2025
    Discusión

    ¿Sui apoya la autodestrucción de los contratos?

    Me preguntaba si hay alguna forma de destruir o autodestruir un contrato inteligente dentro del marco de Sui. He oído hablar de un mecanismo de «autodestrucción» y quería saber si existe en Sui. Además, ¿qué pasaría si un contrato se rescindiera de esta manera?

    • Move
    • Smart Contract
    0
    1
  • article banner.
    harry phan.Peera.
    ParaSuiApr 10, 2025
    Artículo

    Creación de una dApp de lotería NFT de próxima generación con Sui Move y una interfaz de usuario moderna

    🧩 Creación de una dApp de lotería NFT de próxima generación con Sui Move y una interfaz de usuario moderna Esta es tu guía definitiva para crear una dApp de lotería gamificada e impulsada por NFT utilizandoSui Move, con soporte para múltiples rondas, sistemas de recomendación, gobernanza de DAO y un sistema de diseño que encantará a la generación Z. Desde la arquitectura de contratos hasta el flujo de la interfaz de usuario, hagamos todo lo posible. 📦 Desglose de fases Fase 1: Lotería básica Juego de varias rondas Venta de entradas en NFT Sistema de recompensas por recomendación Votación DAO básica Fase 2: Mercado y gamificación Integración con el mercado de NFT Potenciadores (aumentan las posibilidades de ganar) Sistema de premios Lanzamientos aéreos ocultos Fase 3: DAO y multicadena Compatibilidad entre cadenas DAO con propuestas avanzadas Precios dinámicos Análisis en cadena 🧠 Smart Contract profundiza en Sui Move Estructura del contrato module nft_lottery_x::nft_lottery_x { use sui::object; use sui::balance::{Balance, zero}; use sui::coin::{Self, Coin}; use sui::clock::Clock; use sui::random::Random; use sui::event::emit; use sui::transfer; use sui::tx_context::TxContext; use std::option; use std::signer; const EGameNotStarted: u64 = 1000; const EGameAlreadyFinished: u64 = 1001; const EInvalidPayment: u64 = 1002; const ENoTickets: u64 = 1003; const EWinnerAlreadyChosen: u64 = 1004; const ENotWinner: u64 = 1005; public struct Game has key { id: UID, ticket_price: u64, start_time: u64, end_time: u64, total_tickets: u32, round: u32, winner: Option, balance: Balance, referral_bonus: u64, } public struct Ticket has key { id: UID, game_id: ID, ticket_number: u32, buyer: address, referrer: Option, } public struct GameCreated has copy, drop { game_id: ID, start_time: u64, end_time: u64, ticket_price: u64, } public struct TicketBought has copy, drop { game_id: ID, ticket_number: u32, buyer: address, referrer: Option, } public struct WinnerAnnounced has copy, drop { game_id: ID, winner_ticket: u32, round: u32, } public struct RewardClaimed has copy, drop { game_id: ID, ticket_number: u32, amount: u64, } public fun create_game( start_time: u64, end_time: u64, ticket_price: u64, referral_bonus: u64, ctx: &mut TxContext ) { let game = Game { id: object::new(ctx), ticket_price, start_time, end_time, total_tickets: 0, round: 1, winner: option::none(), balance: zero(), referral_bonus, }; emit(GameCreated { game_id: object::id(&game), start_time, end_time, ticket_price, }); transfer::share_object(game); } public fun buy_ticket( game: &mut Game, coin: Coin, clock: &Clock, referrer: Option, ctx: &mut TxContext ): Ticket { assert!(clock.timestamp_ms() >= game.start_time, EGameNotStarted); assert!(clock.timestamp_ms() (TicketBought { game_id: object::id(game), ticket_number: ticket.ticket_number, buyer: ticket.buyer, referrer: ticket.referrer, }); ticket } public entry fun determine_winner( game: &mut Game, rand: &Random, clock: &Clock, ctx: &mut TxContext ) { assert!(clock.timestamp_ms() >= game.end_time, EGameNotStarted); assert!(game.winner.is_none(), EWinnerAlreadyChosen); assert!(game.total_tickets > 0, ENoTickets); let mut generator = rand.new_generator(ctx); let winning_ticket = generator.generate_u32_in_range(1, game.total_tickets); game.winner = option::some(winning_ticket); emit(WinnerAnnounced { game_id: object::id(game), winner_ticket: winning_ticket, round: game.round, }); } public fun claim_reward( ticket: Ticket, game: Game, ctx: &mut TxContext ): Coin { assert!(object::id(&game) == ticket.game_id, EInvalidPayment); let ticket_num = ticket.ticket_number; assert!(game.winner.contains(&ticket_num), ENotWinner); let amount = game.balance.value(); let reward = game.balance.into_coin(ctx); emit(RewardClaimed { game_id: object::id(&game), ticket_number: ticket.ticket_number, amount, }); object::delete(object::id(&game)); reward } } Conclusiones clave: ✅ Balancegarantiza la seguridad tipográfica y el manejo adecuado de las monedas ✅ Optionindica claramente si se ha elegido un ganador ✅ Los eventos ofrecen trazabilidad para usuarios finales y exploradores 🛠 Comandos de CLI Sui sui client call --package --module nft_lottery_x --function create_game --args --gas-budget 10000000 Para comprar un boleto, determinar el ganador o reclamar una recompensa, siga flujos de CLI similares. 🔮 Futuras incorporaciones Restablecimiento automático de la lógica para la próxima ronda claim_reward Emite más eventos como ReferralRewardDistributed Refactoriza los premios mayores y las referencias en submódulos ¡Avísame si quieres una parte 2 para crear una interfaz de usuario e integrarla en la red de pruebas de Sui!

    • Sui
    3
Usamos cookies para asegurarnos de que obtenga la mejor experiencia en nuestro sitio web.
Más información