Hướng dẫn tích hợp số lượng UI được chia tỷ lệ

Hỗ trợ tiện ích mở rộng Số lượng UI được chia tỷ lệ trên Solana

Bối cảnh

Tiện ích mở rộng Scaled UI Amount cho phép người phát hành token chỉ định một bội số để sử dụng khi tính toán số lượng UI của số dư token của người dùng. Điều này cho phép người phát hành tạo ra các token tái cơ sở và kích hoạt những thứ như chia tách cổ phiếu. Tiện ích mở rộng này, giống như tiện ích mở rộng token sinh lãi, cung cấp một số lượng UI thuần túy mang tính thẩm mỹ, có nghĩa là các nhóm cần thực hiện một số công việc bổ sung để tạo trải nghiệm tốt. Các tính toán và chuyển khoản cơ bản đều diễn ra bằng cách sử dụng số lượng thô trong chương trình.

Tài nguyên:

Tóm tắt

  • Người dùng cuối nên tương tác với UIAmount (số lượng thô * bội số) cho giá token, số dư token và số lượng token bất cứ khi nào có thể
  • Các ứng dụng phi tập trung (dApps) và nhà cung cấp dịch vụ nên sử dụng số lượng thô và giá không được điều chỉnh cho tất cả các tính toán và chuyển đổi cho người dùng ở giai đoạn cuối
  • Nguồn cấp dữ liệu giá lịch sử cần được cung cấp cho cả số lượng đã điều chỉnh và chưa điều chỉnh để tích hợp dễ dàng hơn
  • Các giá trị bội số lịch sử cần phải có thể truy cập được để có dữ liệu lịch sử chính xác

Định nghĩa thuật ngữ

  • Bội số: bội số có thể cập nhật tĩnh được sử dụng cho các tính toán UI Amount
  • UIAmount: bội số * số lượng thô (còn gọi là: số lượng đã điều chỉnh)
  • Số lượng thô: số lượng (còn gọi là: số lượng chưa điều chỉnh)

Số dư hiện tại

Số lượng hiện tại để hiển thị

  • Bất cứ khi nào bạn hiển thị số lượng cho các token sử dụng tiện ích mở rộng scaled UI amount cho người dùng cuối, bạn nên sử dụng một trong các cách sau:
    • UIAmount/UIAmountString (ưu tiên)
    • Tính toán thủ công số lượng thô * bội số
    • Chúng tôi khuyên bạn nên cắt bớt giá trị này dựa trên số thập phân mà token có.
      • Ví dụ: nếu yUSD có 6 chữ số thập phân và người dùng có UIAmount là 1.123456789, bạn nên hiển thị "1.123456"

Nơi lấy dữ liệu này:

  • Để biết số dư trực tiếp của người dùng, bạn có thể lấy thông tin cập nhật về các số tiền trên bằng cách gọi getTokenAccountBalance hoặc getAccountInfo
  • Nếu bạn cần biết UI Amount cho một số tiền bất kỳ, bạn có thể thực hiện phép tính này bằng cách gọi hàm amountToUiAmountForMintWithoutSimulation (web3.js v1) hoặc mô phỏng giao dịch sử dụng amountToUiAmount.
    • Lưu ý: amountToUiAmount yêu cầu mô phỏng giao dịch, điều này có nghĩa là nó cũng cần một người trả phí hợp lệ có số dư. Vì lý do này, đây không nên là cách mặc định để lấy số dư.

Cập nhật số tiền hiện tại

Vì Nhà phát hành có thể cập nhật hệ số nhân bất kỳ lúc nào, bạn có thể cân nhắc việc thăm dò định kỳ để cập nhật số dư tài khoản. Nhà phát hành không thường xuyên cập nhật hệ số nhân này quá một lần mỗi ngày. Nếu hệ số nhân được đặt cho một ngày trong tương lai, bạn có thể tự động thăm dò vào thời điểm cập nhật này

Số lượng token trong giao dịch (chuyển khoản / hoán đổi v.v.)

  • Người dùng nên nhập số tiền được hiểu là "UIAmount" đã được điều chỉnh. Ứng dụng xử lý việc này cần chuyển đổi thành số lượng token thô cho giao dịch.
    • Nếu có vấn đề làm tròn, hãy làm tròn xuống và ưu tiên để lại một lượng nhỏ thay vì rủi ro giao dịch thất bại
    • Để thực hiện chuyển đổi này, bạn có thể sử dụng hàm uiAmountToAmountForMintWithoutSimulation (web3.js v1) hoặc mô phỏng giao dịch sử dụng amountToUiAmount.
  • Ứng dụng nên sử dụng tổng số lượng thô khi người dùng yêu cầu thực hiện hành động với "tối đa" hoặc "tất cả" số dư của họ. Điều này đảm bảo không còn lượng nhỏ nào sót lại.
    • Tùy chọn: Bạn có thể cân nhắc tự động đóng tài khoản khi "tối đa" được sử dụng để hoàn trả cho người dùng khoản tiền gửi lưu trữ của họ

Giá token

  • Giá token nên luôn được hiển thị dưới dạng giá đã được điều chỉnh tỷ lệ khi có thể.
  • Nếu bạn là nhà cung cấp dịch vụ cung cấp giá, như một oracle, bạn nên hiển thị cả giá đã điều chỉnh tỷ lệ và giá chưa điều chỉnh tỷ lệ.
    • Khi có thể, hãy cung cấp SDK/API để trừu tượng hóa các phức tạp của tiện ích mở rộng số lượng UI đã điều chỉnh tỷ lệ.

Hệ số nhân hiện tại

  • Hệ số nhân hiện tại có thể được đọc từ token mint bất cứ lúc nào bằng cách gọi getAccountInfo. Ngoài ra, nếu một hệ số nhân trong tương lai được thiết lập, thông tin này cũng có sẵn từ token mint. Chúng tôi khuyên không nên hiển thị hệ số nhân này vì nó có thể gây nhầm lẫn cho trải nghiệm người dùng.

Dữ liệu lịch sử

Dữ liệu lịch sử cho nguồn cấp giá

  • Các dịch vụ cung cấp dữ liệu lịch sử nên lưu trữ và hiển thị cả giá đã điều chỉnh tỷ lệ và chưa điều chỉnh tỷ lệ cho tiện ích mở rộng số lượng UI đã điều chỉnh tỷ lệ.
  • Chúng tôi kỳ vọng số lượng đã điều chỉnh tỷ lệ sẽ được sử dụng thường xuyên nhất vì điều này phù hợp với cách thế giới tài chính truyền thống xử lý các biểu đồ liên quan đến token với phân chia cổ phiếu.

Dữ liệu lịch sử cho số lượng

  • Nếu bạn muốn hiển thị số dư đã chuyển trong quá khứ, bạn cần truy cập vào hệ số nhân tại slot đó. Bạn cũng có thể lưu UiAmount cho các giao dịch chuyển khi xử lý giao dịch để tránh phải thực hiện tính toán này trong tương lai.

Khả năng tương thích ngược

  • Mặc định, các ví và ứng dụng không hiểu tiện ích mở rộng số lượng UI đã điều chỉnh tỷ lệ sẽ hiển thị tổng giá chính xác của một hoạt động bằng cách nhân giá chưa điều chỉnh tỷ lệ * số lượng thô.
  • Tuy nhiên, chúng sẽ hiển thị giá chưa điều chỉnh tỷ lệ gây ra một số nhầm lẫn cho người dùng.
  • Chúng tôi hy vọng điều này khuyến khích các nhóm cập nhật dapps của họ để tương thích với các token sử dụng tiện ích mở rộng số lượng UI đã điều chỉnh tỷ lệ và chúng tôi sẵn sàng cung cấp hỗ trợ trong quá trình này.

Ưu tiên tích hợp được khuyến nghị cho từng nền tảng

Yêu cầu chung

Yêu cầuMô tảMức độ ưu tiên
Hỗ trợ hành động người dùng sử dụng UiAmountTất cả hành động của người dùng nên được nhập bằng UiAmount khi UiAmount được kích hoạt trong toàn bộ ứng dụng. Nếu UiAmount không hiển thị trong ứng dụng, họ nên sử dụng số lượng thô cho đến khi ứng dụng được cập nhật.P0

Yêu cầuMô tảMức độ ưu tiên
Hiển thị số dư đã điều chỉnh tỷ lệHiển thị số lượng đã điều chỉnh tỷ lệ (uiAmount) như số dư chính.P0
Hỗ trợ chuyển tokenNgười dùng cuối nên nhập số lượng chuyển với số dư đã điều chỉnh tỷ lệ (số lượng thô * số dư).P0
Hiển thị giá giao ngayHiển thị giá giao ngay đã điều chỉnh tỷ lệ cho người dùngP0
Metadata lịch sử giao dịchHiển thị số lượng đã điều chỉnh tỷ lệ (UIAmount) cho mỗi lần chuyển khi có thể.P1
Hiển thị cập nhật hệ số nhân trong lịch sử giao dịchKhi hệ số nhân được cập nhật, hiển thị như một sự kiện trong lịch sử giao dịch của người dùng bao gồm số lượng đã tăngP2
Hiển thị biểu đồ lịch sử giáPhản ánh giá đã điều chỉnh tỷ lệ trong biểu đồ giáP1
Hướng dẫn/Chú giảiCung cấp chú giải hoặc hướng dẫn để giáo dục người dùng về các token sử dụng tiện ích mở rộng số lượng đã điều chỉnh tỷ lệP2

Trình khám phá

Yêu cầuMô tảMức độ ưu tiên
Cải tiến trang chi tiết tokenHiển thị metadata như tổng vốn hóa thị trường đã điều chỉnh tỷ lệ và hệ số nhân hiện tạiP0
Hiển thị số dư đã điều chỉnh tỷ lệ cho số dưHiển thị số dư đã điều chỉnh tỷ lệ (UiAmount) cho số dư hiện tại.P0
Hiển thị số dư đã điều chỉnh tỷ lệ cho giao dịchHiển thị số dư đã điều chỉnh tỷ lệ (UiAmount) cho số lượng chuyển trong các giao dịch lịch sử.P0
Hiển thị giá đã điều chỉnh tỷ lệ cho giao dịchHiển thị giá đã điều chỉnh tỷ lệ cho các giao dịch trước đóP1
Phân tích và hiển thị đúng các giao dịch cập nhật hệ số nhânHiển thị đúng chi tiết về việc cập nhật hệ số nhânP2

Nền tảng tổng hợp dữ liệu thị trường (Ví dụ: CoinGecko)

Yêu cầuMô tảƯu tiên
Cập nhật API cho dữ liệu đã điều chỉnhMở rộng chức năng API để bao gồm các thay đổi hệ số nhân theo thời gian cũng như nguồn giá đã điều chỉnh.P0
Tổng cung với điều chỉnh theo tỷ lệKhi hiển thị tổng cung và vốn hóa thị trường, tính đến số dư đã điều chỉnhP0
Theo dõi giá lịch sửCung cấp biểu đồ lịch sử giá sử dụng giá đã điều chỉnh theo thời gian.P1
Theo dõi hệ số nhân lịch sửCung cấp các điểm đánh dấu lịch sử về cập nhật hệ số nhân cho các token sinh lãi.P2
Nội dung giáo dục hoặc giải thíchBao gồm mô tả ngắn gọn hoặc chú giải giải thích cách thức hoạt động của token đã điều chỉnh.P2

Nhà cung cấp nguồn cấp giá

Yêu cầuMô tảƯu tiên
Nguồn cấp giá đã điều chỉnh và chưa điều chỉnhCung cấp nguồn cấp giá cho cả giá đã điều chỉnh và chưa điều chỉnh.P0
Dữ liệu hệ số nhân lịch sửCung cấp API với các thay đổi hệ số nhân lịch sử.P0
Dữ liệu giá lịch sửCung cấp API với giá lịch sử dựa trên cả số lượng đã điều chỉnh và chưa điều chỉnh.P0

DEX (Sàn giao dịch phi tập trung)

Yêu cầuMô tảƯu tiên
Hiển thị số dư token đã rebaseHiển thị số dư đã điều chỉnh cho giao dịch hoặc cung cấp thanh khoản trên giao diện người dùng. (backend vẫn có thể sử dụng số lượng thô)P0
Hỗ trợ cho các hành động tokenNgười dùng cuối nên nhập số lượng hành động với số dư UiAmount của họ (hệ số nhân * số lượng thô).P0
Điều chỉnh nguồn cấp giáBất cứ nơi nào sử dụng nguồn cấp giá để hiển thị giá hiện tại, cung cấp giá đã điều chỉnh cho người dùng cuối.P1
Hiển thị biểu đồ lịch sử giáPhản ánh giá đã điều chỉnh trong biểu đồ giáP1

Is this page helpful?