Найновіші
Будьте в курсі останніх дописів.
Пости
1677- ОбговоренняДляSuiMar 08, 2025
Помилково вилучили в SUI замість APTOS, якісь варіанти відновлення?
Привіт, люди, я нещодавно зробив вихід з Bybit і помилково використав мережу SUI замість APTOS. Я вивів USDT на гаманець SUI, але він не підтримує USDT. Я вже перевірив, і останньої активності немає. Я також підтвердив, що зняття було оброблено Bybit, але хеш транзакції, який я маю, недійсний у мережі SUI. На жаль, це означає, що мої активи можуть бути втрачені. Чи є спосіб повернути мої кошти чи мені не пощастило?
- Sui
- Architecture
00 - ОбговоренняElvin CLONE 206ДляSuiMar 08, 2025
Де купити $SUI в штаті Нью-Йорк?
Я намагаюся знайти, де я можу купити $SUI, перебуваючи в штаті Нью-Йорк. Хтось може допомогти мені з платформами або біржами, доступними для придбання $SUI тут?
- Sui
00 - СтаттяДляSuiMar 08, 2025
Офіційний представник Суй Фам - 7 березня 2025 р
Суп Суй Фам, ім Ед (криптодослідження та аналітик) Я роблю свій внесок у Фонд Sui як редактор відео для офіційної спільноти Sui на X Насолоджуйтесь новинами та альфами цього тижня на Sui! Слідкуйте за офіційним каналом Sui Fam на X: https://x.com/SuiFamOfficial Мій профіль X: https://x.com/EdCryptoFi
- Sui
0 Чи виклик зняття коштів на MaticWETH викликає автоматичні кроки?
Я намагаюся зрозуміти процес у мережі Polygon для передачі токенів MaticWETH назад у мережу Ethereum. Коли я викликаю функцію виведення на такий токен, як MaticWETH, він, здається, викликає подію Transfer на нульову адресу. Чи ця подія автоматично ініціює перші кілька кроків, необхідних для повернення токена до Ethereum, просто тому, що токен вже зіставлений?
- MATIC
00- ОбговоренняДляSuiMar 08, 2025
USDT не відображається після переходу від Sui до Ethereum
Нещодавно я перемістив деякі USDT зі свого гаманця Sui до Ethereum. Хоча я не підтвердив транзакцію зі свого гаманця EVM, USDT були зняті з Sui, але не з'явилися в моєму гаманці EVM. Чи можете ви допомогти мені вирішити цю проблему?
- Sui
- Architecture
02 - СтаттяДляSuiMar 08, 2025
Ця стаття має на меті вивчити та зрозуміти модель #UTXO від $ BTC до $ SUI
Ця стаття має на меті вивчити та зрозуміти модель UTXO. Він використовує простий для розуміння спосіб просто відсортувати моделі UTXO та методи реалізації від $ BTC до $ SUI. Я надам вичерпний огляд, який ми розширюємо тут для ясності та глибини, забезпечуючи професійний та ретельний аналіз. Як один із основних принципів проектування біткойна, модель UTXO стала важливою технічною парадигмою в галузі блокчейну з моменту свого народження. Він відіграє важливу роль у забезпеченні безпеки та простежуваності транзакцій, а також забезпечує інший шлях, крім традиційної моделі балансу рахунку. Оскільки технологія блокчейну постійно оновлюється та повторюється в останні роки, сама модель UTXO також постійно розвивається та розширюється. Вступ до UTXO та його походження Модель UTXO, або вихід невитрачених транзакцій, є фундаментальною концепцією в біткойн, де кожен результат транзакції, який не був витрачений, відстежується як UTXO. Ця модель розглядає операції як готівку, де витрати передбачають вибір конкретних UTXO для покриття суми, на відміну від зміни єдиного балансу. Приклад: Аліса і Боб починають кожен з 5 доларів. У моделі рахунку, якщо Боб позбавить Алісу 2 долари, баланс Аліси стає 3, а Боба - 7. У моделі UTXO 5-доларовий UTXO Аліси витрачається на створення двох нових UTXO: 2 долари Бобу та 3 долари назад Алісі, при цьому Боб зараз тримає свій оригінальний 5-доларовий UTXO та новий 2-доларовий, загальною вартістю 7 доларів. Цей підхід, як детально описано в Розуміння UTXO: Комплексний посібник, забезпечує прозорість та запобігає подвійним витратам, при цьому кожен UTXO публічно відстежується в ланцюжку, зберігаючи конфіденційність за допомогою анонімних адрес. Неважко помітити, що Аліса залишилася з 3 доларами, а Бобу залишилося з 7 доларів. Цей метод обліку, схожий на додавання та віднімання початкової школи, часто з'являється в банківській системі і називається моделлю рахунку/балансу. У ньому баланс рахунку існує як єдине значення. Якщо використовується інший підхід, ніж модель рахунку, наприклад UTXO для представлення передачі багатства між Алісою та Бобом, діаграма буде виглядати інакше: Порівняння з моделлю рахунку/балансу Модель рахунку/балансу, поширена в банківській справі, підтримує єдиний баланс на рахунок, оновлюваний з кожною транзакцією. Її простота, але зазначає проблеми конфлікту стану, коли кілька транзакцій змінюють один рахунок, часто вимагаючи блокування та спричиняючи вузькі місця продуктивності, особливо при високих обсягах транзакцій. Навпаки, модель UTXO, як пояснено в Дослідження моделі UTXO: що відрізняє її у світі блокчейну?, дозволяє уникнути цього, обробляючи транзакції на незалежних UTXO, дозволяючи паралельне виконання без блокування, тим самим покращуючи пропускну здатність та паралельність. Конфіденційність є ще однією перевагою, оскільки криптогаманці генерують нові адреси за транзакцію, що ускладнює зв'язування з окремими особами, на відміну від фіксованих адрес моделі облікового запису, які більш сприйнятливі до кореляційного аналізу. Однак обмеження UTXO у обробці складної бізнес-логіки, такої як багатоетапні контракти, що призвело до моделі на основі облікового запису Ethereum, як згадувалося в Що таке UTXO? Пояснення невитраченого результату транзакції. Об'єктна модель SUI: поєднання моделей UTXO та облікових записів SUI, як детально описано в дописі X та підтримується Об'єктна модель | Документація Sui, зосереджує зберігання навколо об'єктів, а не облікових записів, з двома типами ключів:OWNEDobject (власність адреси) та SharedObject. OWNEDobject вдосконалений UTXO, де може працювати лише власник, і кожна версія витрачається один раз, узгоджуючись з принципами UTXO. Наприклад, об'єкт, що належить адресі, може бути змінений лише його власником, подібно до витрачання UTXO. SharedObject, навпаки, доступний для всіх, подібно до моделі облікового запису, але вимагає консенсусу для замовлення читання та запису, вирішуючи державні суперечки, як зазначено в Компоненти Sui | Документація Sui. Це управляється за допомогою спеціальної обробки, наприклад локального сортування. Об'єктно-орієнтований підхід Sui підкреслює, як модель SUI впливає на масштабованість, безпеку та досвід користувачів. Типи власності в SUI | Тип права власності | Опис | Доступність | --------| --------| -------- | Адреса належить | Власність певної 32-байтової адреси (адреса облікового запису або ідентифікатор об'єкта) | Доступний лише його власнику | Незмінний | Не може бути мутований, перенесений або видалений; немає власника | Доступний будь-кому | Спільний | Спільний за допомогою 0x2::transfer::share_objectфункції | Доступний для всіх | Обгорнутий | Організовує структури даних шляхом розміщення поля structтипу в інше | Не вказано Власні об'єкти включають адресні об'єкти, що вирівнюються з UTXO, тоді як спільні об'єкти явно доступні для всіх, що відповідає ширшому доступу моделі облікового запису. Мій висновок та майбутні міркування Перехід від UTXO Bitcoin до об'єктної моделі SUI представляє значну еволюцію, пропонуючи гнучкість та усуваючи обмеження UTXO у складній логіці за допомогою SharedObject, зберігаючи при цьому переваги паралельності UTXO через OWNEDobject. Цей подвійний підхід, досліджений у дослідженні об'єктно-орієнтованої моделі Суї та мови програмування Move, позиціонує SUI як універсальну платформу, потенційно встановлюючи новий стандарт для моделей даних блокчейну.
- Sui
- Architecture
- SDKs and Developer Tools
- Move
0 - ОбговоренняДляSuiMar 07, 2025
Чи можете ви передати монети SUI безпосередньо на Ledger Stax?
Мені цікаво зберігати свої монети SUI на Ledger Stax. Я хотів би знати, чи можна безпосередньо перевести SUI з біржі або гаманця SUI на Ledger Stax. Якщо це так, я планую зробити трансфер. Хтось має інформацію про поточну підтримку цього процесу?
- Sui
01 - СтаттяДляSuiMar 07, 2025
Розробка контракту на гру в кубиках у Sui Move
У цьому підручнику я проведу вас через процес створеннясмарт-контракту на гру в кубикиза допомогою Sui Move. Цей ��онтракт дозволяє гравцям робити ставки нарезультат кидання кубиків, а адміністратор керує призовим фондом. До кінця ви матимете повністю функціональний контракт і глибоке розуміння кількох ключових концепцій Sui Move. Вступ Контракт про гру в кубики, який ми створимо, передбачає такі функції: Ініціалізація: Творець контракту налаштовує гру. Управління адміністратором: Адміністратор може внести токени в призовий фонд і виводити їх за потреби. Взаємодія з гравцем: Гравці беруть участь, вгадуючи результат кидання кубиків та роблячи ставки. Цей підручник передбачає, що ви маєте базове розуміння Sui Move та зосереджується на впровадженні нових концепцій через практичну реалізацію. Перш ніж зануритися в код, давайте вивчимо ключові поняття, з якими ви зіткнетеся: 1.1 Додавання залежностей: Щоб використовувати токени з іншого контракту (наприклад, контракт на токени змішувача), вам потрібно додати його як залежність у вашому проекті. Це робиться шляхом оновлення Move.tomlфайлу вашого договору: [dependencies] coin_duck = { local = "../coin_duck"”} Тут coin_duck - це контракт маркера змішувача, розташований за вказаним шляхом. Залежний договір також повинен вказати своє поле publicished-at у власному Move.toml з ідентифікатором пакета, отриманим після публікації, наприклад: іржа published-at = "packageId_from_publication" 1.2 Використання тверджень Твердження гарантують дотримання певних умов під час виконання договору. Макро assert!с перевіряє умову і, якщо вона не вдається, видає помилку і зупиняє виконання. Це корисно для запобігання недійсним станам, таким як ставки більше, ніж баланс гравця. 1.3 Генерування випадкових чисел Справедливість у грі в кубики покладається на генерування випадкових чисел. Sui Move надає randomмодуль для цієї мети. Ви створите RandomGeneratorоб'єкт і використовуєте його для створення випадкового числа від 1 до 6, імітуючи кидок кубиків. 1.4 Робота з монетою та балансом У Sui Moveтокеникеруються за допомогою модулів монет та балансу: Монета: Обгортка навколо балансу, яка використовується для передачі токенів. Баланс: представляє фактичну суму токена, дозволяючи такі операції, як розділення та об'єднання. До ключових методів відносяться: coin: :value (in_coin): Повертає загальну вартість об'єкта Coin. coin: :take (&mut баланс, сума, ctx): витягує вказану суму з балансу для створення монети. in_coin.balance_mut () .split (сума): Розділяє вказану суму з балансу монети. balance.join (баланс): Об'єднує один баланс в інший. Ці операції будуть використовуватися для управління призовим фондом гри та ставками гравців. Контракт на гру в кубики Ось повний код контракту на гру в кубики з подальшими детальними поясненнями: /// Game: Dice rolling. Players bet and guess the number. If correct, they win an amount equal to their bet; if incorrect, the bet goes to the game pool. module game_duck:game_duck; use sui::balance::{Self, Balance}; use sui::coin::{Self, Coin}; use sui::random::{Random, new_generator, generate_u8_in_range}; use coin_duck::duckfaucet::DUCKFAUCET; const ErrorUserInsufficient: u64 = 0x101; const ErrorGameInsufficient: u64 = 0x102; public struct Game has key { id: UID, pool_amount: Balance, } public struct Admin has key { id: UID, } fun init(ctx: &mut TxContext) { let game = Game { id: object::new(ctx), pool_amount: balance::zero() }; transfer::share_object(game); let admin = Admin { id: object::new(ctx) }; transfer::transfer(admin, ctx.sender()); } public entry fun addCoinToGamePool(game: &mut Game, in_coin: &mut Coin, amount: u64, _: &mut TxContext) { let value = coin::value(in_coin); assert!(amount = amount, ErrorGameInsufficient); let coin = coin::take(&mut game.pool_amount, amount, ctx); transfer::public_transfer(coin, ctx.sender()); } entry fun play(game: &mut Game, random: &Random, guess_num: u8, in_coin: &mut Coin, amount: u64, ctx: &mut TxContext) { assert!(game.pool_amount.value() >= (amount * 3), ErrorGameInsufficient); assert!(in_coin.balance().value() >= amount, ErrorUserInsufficient); let mut g = new_generator(random, ctx); let win_num = generate_u8_in_range(&mut g, 1, 6); if (win_num == guess_num) { let reward_coin = coin::take(&mut game.pool_amount, amount, ctx); in_coin.join(reward_coin); } else { addCoinToGamePool(game, in_coin, amount, ctx); } } Структура розбивки коду Гра: спільний об'єкт з унікальним ідентифікатором та pool_amount (баланс) для зберігання призового фонду. Admin: Ключовий об'єкт, що належить адміністратору для ініціалізації (init) управління пулом. Ініціалізація (init): Створює ігровий об'єкт з порожнім призовим фондом і публічно ділиться ним. Створює об'єкт Admin і передає його творцю контракту. Додавання до пулу (AddCoinToGamePool) Забирає вказану суму з in_coin адміністратора. Використовує assert! щоб монета мала достатню цінність. Розділяє суму з балансу in_coin і об'єднує її в pool_amount гри. Результат: Виграш: Якщо здогадка збігається з кидком, винагорода, що дорівнює ставці, береться з пулу і об'єднується в in_coin гравця. Програти: Якщо невірна, ставка вираховується з in_coin і додається до пулу через AddCoinToGamePool.
- Sui
- Move
1 Як перевести Wormhole на базі SUI на біржу?
Я намагаюся перевести Wormhole на основі SUI зі свого гаманця Sui на іншу біржу. Я намагався помінятися через Suivision, але прослизання зараз занадто високе. Чи є альтернативи для перетворення або передачі без використання процесу Suivision Swap?
- Sui
- Architecture
02- Питання та відповіді експертівДляPeera MetaMar 06, 2025
Counter.sol не знайдено в контрактах Openzeppelin
lib/openzeppelin-contracts/contracts/utils/Counters.sol": No such file or directory (os error 2)
- discussion
- expert q&a
02