Skip to main content

Bài 5: Marlowe với Blockly

Cho đến nay trong các hướng dẫn này, chúng ta đã tập trung vào việc xây dựng các hợp đồng trong phiên bản văn bản của Marlowe, được nhúng trong Haskell, các hợp đồng Marlowe cũng có thể được xây dựng bằng cách sử dụng môi trường lập trình trực quan Blockly, như chúng ta mô tả ở đây.

Bắt đầu

Để bắt đầu xây dựng một dự án Blockly trong Marlowe Playground, bạn có thể tìm hiểu thêm trong phần về tổng quan về sân chơi. Trên màn hình chính

Picture

chọn Bắt đầu trong Chặn. Bây giờ bạn sẽ thấy một màn hình như thế này:

Picture

Các hợp đồng được lắp ráp bằng cách thêm các thành phần vào các lỗ trong các khối. Để xây dựng một hợp đồng, chúng ta phải điền vào một lỗ hổng duy nhất, cấp cao nhất, ở đây trong khối HỢP ĐỒNG với một Contract : bạn có thể thấy rằng nó được điền bằng một Close ở đây.

Các khối được chọn bằng cách nhấp vào chúng: các khối hiện được chọn được viền màu vàng, như sau:

Picture

Khi một khối hoặc các khối được chọn, bạn có thể di chuyển chúng trực tiếp; cắt, sao chép và xóa chúng bằng cách sử dụng các đường tắt thông thường của hệ điều hành của bạn; và truy cập các thao tác khác bằng cách nhấp chuột phải vào chúng.

Giả sử rằng bạn loại bỏ Close khối và bạn muốn xây dựng một hợp đồng khác. Các mẫu khối cho hợp đồng được tìm thấy bằng cách nhấp vào Hợp đồng trong menu ở phía bên trái. Thực hiện điều này hiển thị tất cả các khối khác nhau tạo hợp đồng, như được hiển thị ở đây:

Picture

Chúng ta có thể chọn một cái và kéo nó vào khu vực chỉnh sửa, nơi có nền dạng chấm, như sau:

Picture

Nhìn vào menu bên tay trái, bạn có thể thấy hai mục nhập mới bên dưới mục gốc: chúng cho bạn biết loại khối nào bạn cần để lắp vào mỗi lỗ trong khối hiện đang được chọn (đó là khối được viền màu vàng).

Trong ví dụ ở đây, bạn có thể thấy rằng lỗ phía trên yêu cầu một khối hoa văn trong khi lỗ phía dưới cần được lấp đầy bởi một hợp đồng khác.

Hãy lắp hợp đồng vào lỗ cấp cao nhất, để chúng ta đang xây dựng hợp đồng với cấu trúc When chính của nó.

Picture

Sau đó, chúng ta có thể lặp lại quá trình này, thêm hợp đồng và các loại thành phần khác - tất cả đều được hiển thị trong menu ở phía bên trái - để xây dựng một hợp đồng hoàn chỉnh, đó là một hợp đồng không có lỗ hổng.

Hãy điền vào thông tin thời gian chờ và thêm Close hợp đồng sẽ được thực hiện trong trường hợp hết thời gian:

Picture

Chúng ta nên chọn thực thi nào bây giờ? Một lần nữa, chúng ta thấy tất cả các thực thi có thể xảy ra bằng cách chọn trường hợp hoặc thực thi trong menu:

Picture

Nếu chúng ta chọn một Deposit thực thi, chúng ta có một số loại lỗ khác nhau cần lấp đầy.

Picture

Ở đây chúng ta phải chọn

  • Một from_party cho người gửi tiền,
  • Giá trị, là số tiền đã gửi…
  • Bằng đơn vị tiền tệ nào hoặc token (thường là ada)
  • Vào tài khoản nào, do một bên cung cấp, có vai trò hoặc khóa công khai.
  • Hợp đồng tiếp tục.

Để điền vào một số trong số này, chúng ta cũng phải điền vào trường văn bản hoặc một số, như được hiển thị trong kết quả cuối cùng ở đây.

Picture

Cuối cùng, chúng ta phải quyết định hợp đồng tiếp tục là gì: hợp đồng làm gì tiếp theo? Đó là một hợp đồng khác. Ở đây nó được hoàn thành như một khoản thanh toán:

Picture

Bài tập
  • Trong Blockly, hãy tự mình hoàn thành việc xây dựng hợp đồng ở trên.
  • Hợp đồng ví dụ có tác dụng gì? Cụ thể các khoản thanh toán theo hợp đồng là gì?

Chỉnh sửa với Blockly (khối)

Các hợp đồng khối có thể được thao tác và chỉnh sửa bằng cử chỉ trực quan và các phím tắt.

Picture

  • Các khối có thể được kéo từ các lỗ, cũng như được chèn vào.
  • Có một menu nhấp chuột phải có sẵn, như được thấy trong hình trên, cung cấp một loạt các tùy chọn.
  • Các đường tắt chỉnh sửa điển hình thường hoạt động, ví dụ như DEL, ⌘C, ⌘V và ⌘X trên Mac OS.

Picture