Skip to main content

PPP 040304 - Parameterized Contracts

Tóm tắt nội dung

"Tác giả của video bắt đầu bằng cách giới thiệu các hợp đồng tham số hóa, một cách kết hợp sự thay đổi vào các hợp đồng thông minh. Thay vì có một hợp đồng thông minh cụ thể duy nhất, các hợp đồng được tham số hóa cho phép tạo ra một gia đình các tập lệnh có thể được khởi tạo cho các giá trị cụ thể của các tham số. Bằng cách làm như vậy, sự thay đổi được đưa vào hợp đồng.

Để chứng minh cách thực hiện một hợp đồng tham số hóa, tác giả sửa đổi một hợp đồng giao dịch được sử dụng trong một ví dụ trước. Thay vì đưa Redeemer và thời hạn vào Datum, tác giả đã mã hóa chúng trực tiếp vào hợp đồng. Hợp đồng kết quả có một tham số, chứa Redeemer và thời hạn. Trình xác thực được thay đổi thành một hàm mong đợi một tham số cho Trình xác thực, là một chúng Trình xác thực.

Sau đó, tác giả cố gắng gọi hợp đồng mới nhưng nhận được thông báo lỗi. Lỗi này có liên quan đến mẫu Haskell, đây là bước tổng hợp trước khi nối mã vào mã nguồn. Mẫu Haskell Splices phải được biết đến tại thời điểm biên dịch, nhưng tham số trong ví dụ này chỉ được biết đến trong thời gian chạy. Tác giả lưu ý rằng điều này là do những hạn chế của mẫu Haskell và một số DAPP có thể giải quyết điều này bằng cách cho phép người dùng cung cấp thông tin Redeemer và thời hạn trong thời gian chạy.

Video này là một phần của loạt bài về lập trình Plutus và giới thiệu khái niệm hợp đồng được tham số hóa hoặc các tập lệnh được tham số hóa, có nghĩa là sự thay đổi của việc làm bánh vào chính hợp đồng. Điều này cho phép tạo ra một chúng các tập lệnh có thể được khởi tạo cho các giá trị cụ thể của các tham số thay vì tạo một hợp đồng thông minh cụ thể. Tập lệnh được tham số hóa bao gồm Trình xác thực, có thể là một hàm từ tham số đến trình xác thực và Redeemer và thời hạn có thể được mã hóa trực tiếp vào hợp đồng thay vì sử dụng Datum . Trong video, người trình bày đã sửa đổi hợp đồng vesting thành hợp đồng được tham số hóa, đã thay đổi bộ vest Datum thành các tham số vesting và cập nhật chữ ký để bao gồm tham số bổ sung. Người trình bày cũng đã thay đổi trình xác thực để mong đợi một hàm từ tham số sang trình xác thực và cập nhật trình xác thực phù hợp. Mặc dù mọi thứ biên dịch, có một lỗi trong thời gian chạy xuất phát từ bước tổng hợp trước mẫu Haskell, điều đó có nghĩa là tất cả dữ liệu mà mẫu có mối nối cần phải được biết đến tại thời điểm biên dịch.

Tóm lại, bài viết thảo luận về lợi ích của các hợp đồng được tham số hóa, cho phép tạo ra một gia đình tập lệnh với sự thay đổi được đưa vào chính hợp đồng. Tuy nhiên, bài viết cũng lưu ý các hạn chế của mẫu Haskell khi cố gắng thực hiện các hợp đồng được tham số hóa."


Picture