7-4. Thành phần TransferOwnership

chuyển quyền sở hữu
  1. Vai trò của thành phần TransferOwnership

  2. Mã thành phần

    2-1. Kết xuất nút transferOwnership

    2-2. Thành phần TransferOwnership

  3. Tương tác với hợp đồng: phương pháp transferOwnership

  4. Cập nhật dữ liệu vào cửa hàng: hành động updateOwnerAddress

1) Vai trò của thành phần TransferOwnership

Chủ sở hữu của ảnh có thể chuyển quyền sở hữu ảnh cho một người dùng khác. Bằng cách gửi giao dịch transferOwnership, địa chỉ của chủ sở hữu mới sẽ được lưu vào lịch sử quyền sở hữu. Lịch sử này theo dõi các địa chỉ của chủ sở hữu trong quá khứ.

2) Mã thành phần

2-1) Kết xuất nút TransferOwnership

Chúng ta sẽ chỉ kết xuất nút TransferOwnership trên thành phần FeedPhoto khi địa chỉ của chủ sở hữu ảnh khớp với địa chỉ của người dùng đã đăng nhập (tức bạn là chủ sở hữu).

2-2) Thành phần TransferOwnership

3) Tương tác với hợp đồng: phương pháp transferOwnership

Chúng ta đã tạo hàm transferOwnership trong hợp đồng Klaystagram ở chương 4. Soạn hợp đồng thông minh Klaystagram. Hãy gọi hàm từ ứng dụng.

  1. Gọi phương pháp hợp đồng: transferOwnership

    • id: tokenId của ảnh

    • to: Địa chỉ để chuyển quyền sở hữu ảnh

  2. Đặt các tùy chọn giao dịch

    • from: Một tài khoản gửi giao dịch này và thanh toán phí giao dịch.

    • gas: Lượng gas tối đa mà tài khoản from sẵn sàng thanh toán cho giao dịch này.

  3. Sau khi gửi giao dịch, hiển thị tiến trình cùng vòng đời giao dịch bằng thành phần Toast.

  4. Nếu giao dịch thành công tiến vào một khối, gọi hàm updateOwnerAddress để cập nhật địa chỉ của chủ sở hữu mới vào trang nguồn cấp dữ liệu.

4) Cập nhật thông tin vào cửa hàng redux: hành động updateOwnerAddress

Sau khi chuyển quyền sở hữu, FeedPhoto cần được kết xuất lại bằng địa chỉ của chủ sở hữu mới. Để cập nhật địa chỉ của chủ sở hữu mới, hãy gọi dữ liệu feed từ cửa hàng và tìm ảnh có tokenId từ biên lai. Sau đó, đẩy địa chỉ của chủ sở hữu mới lên ownerHistory và setFeed của ảnh.

Last updated