Peera.

Найновіші

Будьте в курсі останніх дописів.

Пости

1829
  • skywinder.Peera.
    ДляMoveApr 10, 2025
    Питання та відповіді експертів

    Що таке рідна функція і чи можемо ми називати їх безпосередньо?

    Я натрапив на термін «рідна функція» у Move, але не можу знайти детальної інформації про це. Я чув, що вони оголошені в Move, але визначені зовні, часто в Rust. Чи означає це, що це внутрішні функції, які не можна викликати безпосередньо гаманцями чи іншими модулями?

    • Move CLI
    • Move
    0
    1
  • kryptoschain.Peera.
    ДляMoveApr 10, 2025
    Питання та відповіді експертів

    Як передати об'єкт, що належить іншому об'єкту?

    Я стикаюся з проблемою з передачею об'єкта А, який належить об'єкту B, а об'єкт B належить мені. Я отримую помилку, що повідомляє, що транзакція не була підписана правильним відправником. Хтось знає, як це вирішити і правильно отримати об'єкт А?

    • Move CLI
    • Move
    0
    1
  • Michelle .Peera.
    ДляSuiApr 10, 2025
    Питання та відповіді експертів

    Чому гаманець мого торгового бота блокується до наступної епохи?

    У мене виникла проблема, коли мій торговий гаманець, який використовує бота, часто отримує помилку: «Не вдалося підписати транзакцію кворумом валідаторів...» Це призводить до того, що гаманець блокується до наступної епохи, іноді годинами. Він з'являється особливо після тайм-ауту RPC під час транзакції. Чому це відбувається, і як це можна виправити, щоб уникнути таких довгих замків?

    • Sui
    0
    0
  • McMMoKing.Peera.
    ДляWalrusApr 10, 2025
    Питання та відповіді експертів

    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.
    ДляWalrusApr 10, 2025
    Обговорення

    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
    ДляPolygonApr 10, 2025
    Обговорення

    Як інтегрувати міст Polygon Portal для передачі USDT?

    Зараз я працюю над проектом, де мені потрібно інтегрувати міст Polygon Portal у гаманець, щоб полегшити переказ USDT. Чи є будь-яка документація чи ресурси, які можуть допомогти мені зрозуміти, як працює цей міст?

    • Polygon PoS
    0
    2
  • Pluto Dev👽.Peera.
    ДляMoveApr 10, 2025
    Питання та відповіді експертів

    Перетворення відкритого ключа на адресу Sui в Sui Move

    Я намагаюся перетворити відкритий ключ у адресу Sui за допомогою Sui Move, але не можу знайти жодної вбудованої функції. Я розумію, що це дуже важливо для моєї роботи. Чи міг би хтось пояснити, як саме зробити це перетворення?

    • Move CLI
    0
    1
  • Xavier.eth.Peera.
    ДляSuiApr 10, 2025
    Обговорення

    Як перевести SUI зі стандартного гаманця на гаманець Ledger?

    Я підключив свій Ledger до нещодавно створеного гаманця SUI, і це добре спрацювало. Тепер я хочу перевести свій SUI з мого «Стандартного» гаманця SUI на свій гаманець SUI «Ledger». Чи є ярлик, чи мені потрібно надсилати SUI з однієї адреси на іншу, наприклад, надсилати токени на біржі? Я хочу, щоб цей процес був безпечним.

    • Transaction Processing
    0
    1
  • 1 Luca.Peera.
    ДляMoveApr 10, 2025
    Обговорення

    Чи підтримує Суй контракт на самознищення?

    Мені було цікаво, чи є спосіб знищити чи самознищити смарт-контракт в рамках Sui. Я почув щось про механізм «самознищення» і хотів знати, чи існує він у Суї. Крім того, що станеться, якщо контракт розірваний таким чином?

    • Move
    • Smart Contract
    0
    1
  • article banner.
    harry phan.Peera.
    ДляSuiApr 10, 2025
    Стаття

    Створення DApp лотереї NFT наступного покоління за допомогою Sui Move та сучасного інтерфейсу користувача

    🧩 Створення DApp лотереї NFT наступного покоління за допомогою Sui Move та сучасного інтерфейсу користувача Це ваш остаточний посібник із створення гейміфікованого лотерейного DApp на базі NFT за допомогоюSui Move, з підтримкою кількох раундів, реферальними системами, управлінням DAO та системою дизайну Gen Z, яка сподобається. Від архітектури контрактів до потоку інтерфейсу користувача — давайте розберемося. 📦 Фазова поломка Фаза 1 — Основна лотерея Багатораундний геймплей NFT квитки Система винагород за рефералів Базове голосування DAO Фаза 2 - Маркетплейс та гейміфікація Інтеграція ринку NFT Бустери (збільшити шанс на виграш) Система джекпотів Приховані аеродропи Фаза 3 - DAO та багатоланцюг Крос-ланцюгова сумісність DAO з розширеними пропозиціями Динамічне ціноутворення Онлайн-аналітика 🧠 Глибоке занурення смарт-контракту на Sui Move Структура контракту 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 } } Ключові висновки: ✅ Balanceзабезпечує безпеку типу та належне поводження з монетами ✅ Optionчітко сигналізує, чи був обраний переможець ✅ Події пропонують простежуваність для фронтендів та дослідників 🛠 Команди Sui CLI sui client call --package --module nft_lottery_x --function create_game --args --gas-budget 10000000 Щоб купити квиток, визначити переможця або отримати винагороду, дотримуйтесь подібних потоків CLI. 🔮 Майбутні доповнення Логіка автоматичного скидання для наступного раунду claim_reward Випускайте більше подій на кшталт ReferralRewardDistributed Рефактор джекпотів та рефералів у підмодулі Дайте мені знати, якщо ви хочете, щоб частина 2 створила інтерфейс користувача та інтегрувалася в testnet Sui!

    • Sui
    3
Ми використовуємо файли cookie, щоб гарантувати вам найкращий досвід на нашому сайті.
Детальніше