Bài viết
Chia sẻ kiến thức của bạn.
Các mô-đun có thể tạo ra nhiều đồng xu trên chuỗi một cách liền mạch không?
Tôi đang làm việc trên một mô-đun cho các thị trường dự đoán và cần nó để tạo ra các đồng tiền trên chuỗi thông qua một lớp nhà máy theo cách không cho phép và có thể xác minh được. Hiện tại, các mô-đun có những hạn chế như chỉ có một đồng xu cho mỗi mô-đun do One Time Witness, điều đó có nghĩa là tôi phải tạo một tiêu chuẩn tiền xu tương đương mà ví của người dùng không nhận ra là coin. Chúng ta có thể giải quyết vấn đề này trong bản cập nhật tiếp theo không?
- Move CLI
- Move Module
Câu trả lời
3Mặc dù các mô-đun hiện có những hạn chế như hạn chế chỉ xuất bản một đồng xu cho mỗi mô-đun vì One Time Witness, hãy cân nhắc sử dụng một hợp đồng được triển khai duy nhất như WASM, cho phép tạo ra nhiều loại coin như được mô tả trong hướng dẫn này: https://docs.sui.io/guides/developer/nft/asset-tokenization.
Nếu bạn đang xây dựng một mô-đun thị trường dự đoán và muốn tạo tiền mới trên chuỗi bằng cách sử dụng mô hình nhà máy, bạn đang gặp phải một giới hạn đã biết trong khung Move coin hiện tại — cụ thể là quy tắcOne Time Witness (OTW), quy tắc này hạn chế mỗi mô-đun chỉ xác định một loại coin. Bởi vì điều này, khi bạn cố gắng tạo nhiều đồng tiền một cách linh hoạt, bạn buộc phải sử dụng cấu trúc tùy chỉnh mà ví không nhận ra là đồng tiền gốc, làm cho các tương tác của người dùng kém mượt mà hơn.
Để giải quyết vấn đề này, bạn có thể xây dựng một cấu trúc giống như đồng xu tùy chỉnh bắt chước hành vi của bản địa Coin<T>
nhưng không được giao diện ví Sui coi là một cấu trúc giống như một. Thật không may, cho đến khi Sui cập nhật mô hình coin của mình để cho phép hỗ trợ nhiều coin trên mỗi mô-đun**hoặc giới thiệu một hệ thống nhà máy linh hoạt hơn với hỗ trợ ví thích hợp, giới hạn này sẽ vẫn tồn tại. Tuy nhiên, bạn vẫn có thể đảm bảo hệ thống vẫn có thể xác minh và không được phép bằng cách phát ra các sự kiện để tạo đồng tiền và lưu trữ siêu dữ liệu trong sổ đăng ký mà ví hoặc trình lập chỉ mục có thể đọc.
Trong khi chờ đợi, đây là một cấu trúc khái niệm đơn giản cho một trình tạo tiền dựa trên nhà máy bắt chước hành vi của đồng tiền gốc:
public entry fun create_prediction_token(
admin: &signer,
name: vector<u8>,
symbol: vector<u8>,
decimals: u8
): (CustomCoin, CustomCoinMetadata) {
let token = CustomCoin { id: object::new(admin), value: 0 };
let metadata = CustomCoinMetadata {
name,
symbol,
decimals,
creator: signer::address_of(admin)
};
// Emit an event or store in registry for traceability
event::emit<NewTokenCreated>(&metadata);
(token, metadata)
}
Sui có thể cung cấp một giải pháp linh hoạt hơn hoặc bản địa hơn trong tương lai, có thể với các nhà máy đa coin**hoặc logic nhận dạng ví cập nhật cho các đồng tiền do nhà máy tạo ra. Cho đến lúc đó, bạn có thể theo dõi sự phát triển và đề xuất các cải tiến trên repo chính thức hoặc các cuộc thảo luận cộng đồng.
[https://github.com/MystenLabs/sui/discussions](https://github.com/MystenLabs/sui/discussions]
[https://docs.sui.io/devnet/build/coin](https://docs.sui.io/devnet/build/coin]
Đây là một khu vực đang phát triển trong hệ sinh thái, vì vậy phản hồi của bạn có thể ảnh hưởng trực tiếp đến các bản cập nhật trong tương lai.
Ngay bây giờ, quy tắc chứng kiến một lần (OTW) trong ngôn ngữ Move của Sui giới hạn bạn chỉ tạo ra một loại coin cho mỗi mô-đun, điều này có thể gây rắc rối cho một thị trường dự đoán, nơi bạn có thể muốn một lớp nhà máy sản xuất ra nhiều loại coin trên chuỗi một cách không cho phép và có thể kiểm chứng được. Hạn chế này xuất phát từ cách chức năng coin: :create_currency sử dụng OTW để đảm bảo một TreasuryCap duy nhất cho mỗi loại coin, ví này nhận ra là tiền tiêu chuẩn, nhưng điều đó có nghĩa là bạn không thể dễ dàng quay nhiều coin trong một mô-đun mà không cần giải quyết các giải pháp như tạo các mô-đun riêng biệt hoặc các loại tùy chỉnh mà ví có thể không xem là coin thích hợp. Đối với thị trường dự đoán của bạn, bạn có thể thử một mô hình nhà máy trong đó một mô-đun duy nhất quản lý nhiều đối tượng giống như đồng xu bằng cách gói chúng trong một cấu trúc tùy chỉnh, nhưng điều này thường dẫn đến các mã thông báo phi tiêu chuẩn không phù hợp với ví, như bạn đã nhận thấy. Không có bản sửa lỗi nào được xác nhận trong bản cập nhật Sui tiếp theo để nâng giới hạn OTW hoặc cho phép tạo nhiều đồng tiền liền mạch trong một mô-đun duy nhất, vì lộ trình tập trung nhiều hơn vào những thứ như đăng nhập ZK và tối ưu hóa lưu trữ. Một động thái thực tế là triển khai một nhà máy tạo ra các mô-đun mới một cách linh động cho từng loại coin, sử dụng hàm coin: :create_currency để giữ cho chúng tương thích với ví và xác minh việc tạo ra chúng thông qua các sự kiện phát ra trên chuỗi. Cách tiếp cận này vẫn không được phép vì bất cứ ai cũng có thể gọi cho nhà máy, và nó có thể xác minh được thông qua hệ thống sự kiện hoặc trình thám hiểm của Sui, mặc dù nó hơi vụng về với việc xuất bản mô-đun bổ sung.
Bạn có biết câu trả lời không?
Hãy đăng nhập và chia sẻ nó.
Move is an executable bytecode language used to implement custom transactions and smart contracts.
Kiếm phần của bạn từ 1000 Sui
Tích lũy điểm danh tiếng và nhận phần thưởng khi giúp cộng đồng Sui phát triển.
