Chương trình Ủy quyền Đăng ký cho phép các nhà phát triển để người dùng ủy quyền cho các giao dịch chuyển token trong tương lai từ ví của họ với các giới hạn rõ ràng. Nó được thiết kế cho thanh toán định kỳ, đăng ký, thanh toán của người bán, và các luồng khác mà người dùng không cần phải ký cho mỗi giao dịch chuyển một cách thủ công.
Mục đích
Các token account của Solana có thể phê duyệt một quyền khác để di chuyển token, nhưng mỗi token account chỉ có thể có một quyền được phê duyệt tại một thời điểm. Điều đó khiến việc một ví hỗ trợ an toàn nhiều thỏa thuận chi tiêu cho cùng một token trở nên khó khăn, chẳng hạn như đăng ký hàng tháng, hạn mức chi tiêu cố định và thỏa thuận thanh toán của người bán.
Chương trình này giải quyết vấn đề đó bằng cách cung cấp cho mỗi cặp
(user, token mint) một Quyền Đăng ký được kiểm soát bởi chương trình.
Token account của người dùng phê duyệt quyền đó một lần. Sau đó, chương trình
kiểm tra mỗi yêu cầu chuyển tiền so với một bản ghi riêng biệt xác định ai có
thể rút tiền, họ có thể rút bao nhiêu và khi nào ủy quyền hết hạn hoặc đặt lại.
Quyền Đăng ký không thể tự di chuyển tiền. Một giao dịch chuyển chỉ thành công khi nó khớp với một trong các ủy quyền đang hoạt động của người dùng.
ID Chương trình
De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44
ID chương trình được khai báo trong program/src/lib.rs. Quy trình làm việc
Surfpool cục bộ cài đặt chương trình tại địa chỉ chuẩn này.
Mô hình Ủy quyền
Chương trình hỗ trợ ba mô hình ủy quyền:
| Mô hình | Mục đích |
|---|---|
| Ủy quyền cố định | Cho phép ví hoặc dịch vụ khác chi tiêu tối đa một số tiền cố định, tùy chọn đến thời điểm hết hạn. |
| Ủy quyền định kỳ | Cho phép ví hoặc dịch vụ khác chi tiêu tối đa một giới hạn được đặt lại mỗi kỳ, chẳng hạn như hàng ngày, hàng tuần hoặc hàng tháng. |
| Gói đăng ký | Cho phép người bán công bố các điều khoản thanh toán mà người dùng có thể chấp nhận, sau đó cho phép các bên thu được phê duyệt tính phí người đăng ký mỗi kỳ thanh toán. |
Token Được Hỗ Trợ
Chương trình hỗ trợ các token được tạo bằng cả SPL Token và Token-2022. Phần mở
rộng Token-2022 duy nhất bị từ chối là TransferHook đã được cấu hình (khi hook
authority hoặc program_id được thiết lập). Một TransferHook không hoạt
động (cả hai đều chưa được thiết lập, và do đó vĩnh viễn bất biến) và tất cả các
phần mở rộng khác đều được cho phép.
Sự Kiện On-Chain
Chương trình phát ra các sự kiện on-chain để các indexer và ứng dụng có thể theo dõi các hoạt động quan trọng. Những sự kiện này bao gồm các thay đổi về đăng ký và chuyển token được thực hiện thông qua các luồng cố định, định kỳ và gói đăng ký.
Quản Lý Phiên Bản
Các bản ghi thuộc sở hữu của chương trình bao gồm một trường phiên bản. Điều này tạo đường dẫn cho chương trình nâng cấp dữ liệu tài khoản theo thời gian mà không làm gián đoạn người dùng hiện tại. Chiến lược di chuyển hỗ trợ:
- Cập nhật tại chỗ theo kiểu lazy
- Lệnh migrate rõ ràng
- Phương án dự phòng thu hồi và tạo lại
Cộng Tác Viên
Dự án được duy trì bởi các cộng tác viên của
kho solana-program/subscriptions.
Trạng Thái Kiểm Toán
Chương trình đã được kiểm toán bởi Cantina. Trạng thái kiểm toán, commit cơ sở,
commit đã xác minh sửa lỗi và delta chưa được kiểm toán hiện tại được theo dõi
trong
thư mục audits/
của kho lưu trữ.
Ứng Dụng Demo
Nếu bạn muốn tự mình thử nghiệm chương trình, bạn có thể xem ứng dụng mẫu tại đây để thấy cách triển khai đầy đủ các khái niệm được đề cập trong phần này.
Is this page helpful?