Nếu bạn là nhà phát triển Solidity, bạn sẽ rất vui khi biết rằng Truffle hiện trong hợp đồng thông minh . Mặc dù Truffle từ lâu đã dẫn đầu về công cụ phát triển hợp đồng thông minh—cung cấp môi trường dễ sử dụng để tạo, thử nghiệm và gỡ lỗi hợp đồng thông minh—console.log được tích hợp trực tiếp là một tính năng mà nó vẫn cần. hỗ trợ đăng nhập bảng điều khiển Solidity Nhưng không còn nữa! Giờ đây, các nhà phát triển có thể dễ dàng ghi nhật ký tin nhắn và gỡ lỗi hợp đồng thông minh của họ, tất cả đều nằm trong môi trường Truffle (Ganache) quen thuộc. Hãy xem làm thế nào. Console.log là gì? Console.log là một tính năng rất phổ biến trong JavaScript và được các nhà phát triển sử dụng rộng rãi để dễ dàng xuất thông báo ghi nhật ký và trích xuất chi tiết trực tiếp từ mã. Trong bối cảnh phát triển hợp đồng thông minh và web3, console.log đóng một vai trò tương tự, cho phép các nhà phát triển in ra các biến Solidity và thông tin khác từ hợp đồng thông minh của họ. Ví dụ: bạn có thể sử dụng console.log để hiển thị giá trị của một biến hoặc đầu ra của lệnh gọi hàm trong hợp đồng thông minh của mình. Điều này có thể cực kỳ hữu ích khi gỡ lỗi hoặc thử nghiệm hợp đồng thông minh của bạn. console.log("Console Logging: The Smart Contract Developer's Best Friend"); Cách sử dụng ghi nhật ký bảng điều khiển trong Truffle Việc sử dụng console.log khá đơn giản. Trước tiên, bạn sẽ phải đảm bảo rằng bạn có phiên bản Truffle cập nhật đang chạy trên máy tính của mình. Nếu bạn gặp bất kỳ sự cố nào, bạn có thể muốn gỡ cài đặt gói hoàn toàn rồi cài đặt lại. Đối với các lệnh được sử dụng trong bài đăng này, chúng tôi sẽ sử dụng NPM làm trình quản lý gói của chúng tôi. $ npm install -g truffle Sau khi cài đặt thành công, tôi khuyên bạn nên sửa đổi tệp cấu hình truffle (tức là ) như sau: truffle-config.js module.exports = { . . . solidityLog: { displayPrefix: ' :', // defaults to "" preventConsoleLogMigration: true, // defaults to false } : trang trí các đầu ra từ console.log để phân biệt nó với các nội dung khác được hiển thị bởi CLI. displayPrefix : sàng lọc các triển khai hợp đồng không được thực hiện khi ở trên mạng thử nghiệm hoặc mạng chính. Bạn có thể chọn không tham gia điều này nếu muốn triển khai hợp đồng của mình có bao gồm console.log. Tuy nhiên, nếu bạn chọn làm điều này, hãy nhớ rằng console.log có hành vi không thể đoán trước khi sử dụng gas. ngănConsoleLogMigration Bây giờ bạn đã sẵn sàng để thử nó! Nhập contract.sol vào mã Solidity của bạn như bình thường. Bây giờ bạn đã sẵn sàng sử dụng lệnh console.log() như trong JavaScript. hợp đồng Điều này bao gồm việc sử dụng chuỗi như và . thay thế %s %f pragma solidity ^0.8.9; import "truffle/console.sol"; contract BookStore { //... function transfer(address to, uint256 amount) external { console.log("Transferring %s tokens to %s", amount, to); require(balances[msg.sender] >= amount, "Not enough tokens"); balances[msg.sender] -= amount; balances[to] += amount; emit Transfer(amount, to, msg.sender); } } Hàm truyền ở trên cho thấy console.log đang hoạt động. Hãy tưởng tượng một cuộc gọi đến chức năng không thành công với lỗi “ ”. Trong trường hợp này, dòng console.log sẽ hiển thị số lượng mã thông báo mà cuộc gọi đang cố chuyển. Điều này cho phép nhà phát triển xem và mã thông báo được chuyển. Tin nhắn sẽ trông như thế này. chuyển Không đủ mã thông báo địa chỉ số lượng ... Transferring 10 tokens to 0x377bbcae5327695b32a1784e0e13bedc8e078c9c Một cách thậm chí còn tốt hơn để gỡ lỗi này có thể là thêm vào câu lệnh console.log hoặc in nó ra trên một dòng riêng. Bằng cách đó, số dư của người gửi cũng hiển thị trong bảng điều khiển. Bạn sẽ có được điểm! balances[msg.sender] Bạn cũng có thể để lại nhật ký trong mạng thử nghiệm và mạng chính; bằng cách này, bạn sẽ có một cách hay để quan sát hợp đồng thông minh của mình. Và điều đáng nói là các công cụ như sẽ tích hợp tính năng loại bỏ nhật ký, điều này có thể hữu ích khi gỡ lỗi và thử nghiệm hợp đồng thông minh trong môi trường sản xuất. Tenderly Cuối cùng, khi sử dụng ghi nhật ký bảng điều khiển, điều quan trọng là phải tuân theo tất cả các quy tắc sử dụng tốt mà bạn đã biết, chẳng hạn như sử dụng thông báo tường trình rõ ràng và mô tả. Điều này sẽ giúp bạn hiểu đầu ra dễ dàng hơn và xác định bất kỳ vấn đề nào có thể phát sinh. Các công cụ sửa lỗi khác trong Truffle Mặc dù ghi nhật ký bảng điều khiển là một công cụ mạnh mẽ để gỡ lỗi hợp đồng thông minh, nhưng hãy nhớ rằng Truffle cũng cung cấp các công cụ gỡ lỗi khác. Truffle có một tích hợp mạnh mẽ có thể được sử dụng để từng bước thực hiện hợp đồng thông minh và kiểm tra trạng thái của các biến tại các điểm khác nhau trong quá trình thực thi. Ngoài ra, là một cách hay để ghi lại thông điệp và theo dõi hành vi của hợp đồng thông minh. công cụ CLI trình gỡ lỗi các sự kiện Điều đó nói rằng, điều đáng chú ý là việc sử dụng trình gỡ lỗi cho một thứ đơn giản như đầu ra biến đổi có thể là quá mức cần thiết. Tương tự, ghi nhật ký sự kiện chỉ hoạt động khi giao dịch thành công, đây có thể là một hạn chế trong một số trường hợp nhất định. Điểm mấu chốt là tính năng console.log—kết hợp với các công cụ sửa lỗi khác trong Truffle—có thể mang lại trải nghiệm tốt hơn cho nhà phát triển nhờ và nó. Nó cung cấp cho các nhà phát triển khả năng ghi nhật ký tin nhắn nhanh chóng và dễ dàng cũng như theo dõi hành vi của các hợp đồng thông minh của họ, trong khi các công cụ gỡ lỗi khác có thể được sử dụng để gỡ lỗi và khắc phục sự cố nâng cao hơn. tính đơn giản dễ sử dụng của Dùng thử Tính năng ghi nhật ký bảng điều khiển mới là một bổ sung có giá trị để phát triển hợp đồng thông minh. Nó rất dễ sử dụng và có thể hợp lý hóa quá trình gỡ lỗi và thử nghiệm. Khả năng ghi nhật ký tin nhắn và theo dõi hành vi của hợp đồng thông minh trong thời gian thực có thể làm giảm sự thiếu hiệu quả và đau đầu. Đó là một công cụ tuyệt vời để có trong hộp công cụ của bạn. của Truffle