Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
1,5 MB
Nội dung
– ĐỒ ÁN BLOC KCHAI BÀI BÁO N CÁO Nhóm6 : Thành viên: Huỳnh Võ Văn Trường Nguyễn Văn Bình Giáo viên hướng dẫn: -TS Đỗ Sính BUỔI - Vấn đề cần giải quyết: Cài đặt truffle Vào truffle development Viết writing test - Giải vấn đề: Cài đặt truffle Ta dùng lệnh “npm install -g truffle” để cài đặt truffle Tiếp đến ta dùng lệnh “ truffle unbox react ” để mở gói reactjs Tiếp theo ta dùng lệnh “npm install save@openzeppelin/contracts@v3.0.0-beta.0” để lưu sử dụng openzeppelin Dùng lệnh “truffle development” để vào truffle development, ta thấy 10 account 10 private key tương ứng với Lệnh “migrate” cho phép ta compiling contracts Ta dùng lệnh “npm install -save chai chai-bn chai-as-promised” để cài đặt packages chai Dùng lệnh “truffle test” compiling thành công xuất đoạn text “all token should be in my account” Tương tự ta chạy “truffle test” với test lại ta nhận dịng thơng báo in text test - Kết luận - Thông qua vấn đề giải ta kết luận sau: + Ta sử dụng ERC-20 để thực việc thực thi với token + Viết test để đảm bảo đầu ln khơng gây cản trở q trình deploy smart contract Buổi -Vấn đề cần giải Xây dựng dòng pragma import thư viện Tạo hàm fallback Tạo token sales -Giải vấn đề Đầu tiên sửa đổi số dòng code sau: Ở ta cần chọn phiên cho solidity import số thư viện OpenZeppelin Để thực gửi Ether trực tiếp đến hợp đồng thông minh mà không thực tương tác với ta cần tạo function “fallback”: Tiếp theo ta thực ghi đè Cwordsale ta cần thực thêm số code vào file: Ở ta thêm “virtual” để tạo thêm token ảo Tiếp đến tạo hợp đồng Crowdsales Ta thêm vào file MyTokenSale.sol: Ở ta tạo hàm contructor bên ta có biến rate, wallet, token Để hợp đồng thông minh crowdsale hoạt động, ta phải gửi tất tiền vào hợp đồng Điều thực giai đoạn di chuyển cài đặt truffle: Vấn đề test không thành công Thay đổi Truffle-Test-Suite tiêu chuẩn nghiệm openzeppelin: - Kết luận - Chúng ta tạo Crowdsale Smart Contract thành công làm việc với thư viện openzeppelin BUỔI - Vấn đề cần giải Thực tất test Set up chai sử dụng - Giải vấn đề Đầu tiên, ta có thay code MyToken.test.js sau: Chúng ta không gọi token sau deploy mà thay vào gán giá trị token Thêm DotEnv Chúng ta có vấn đề lớn token dùng nhiều file, tốt ta sử dụng PATH sử dụng token cho tất file cần thiết Bây ta cần cài đặt dotenv: Và tiếp sau đó, ta tạo file env project chứa nội dung sau: Ta thấy INITIAL_TOKENS có giá trị 10000000, sử dụng ta cần gọi giá trị file, đổi ta cần thay đổi giá trị INITIAL_TOKENS Cụ thể, file migrations 2_deploy_contracts.js: Ta cần import path file env gọi đến INITIAL_TOKENS PATH ta sử dụng INITIAL_TOKENS file tests MyToken.test.js: Viết test cho Crowdsale: Bây giờ, ta cần viết test cho crowdsale, cụ thể tạo file MyTokenSale.test.js với code sau: Trong đó: - Ta import contract MyToken, MyTokenSale, KycContract để thực việc test : - Ta dùng PATH file để lấy INITIAL_TOKENS - Ta thực viết test case cho Crowsale: o there shouldnt be any coins in my account: ta kiểm tra trường hợp ban đầu không nên có coins tài khoản o all coins should be in the tokensale smart contract: test case ta kiểm tra trường hợp tất coins phải nằm hợp đồng thông minh Tokensale o should be possible to buy one token by simply sending ether to the smart contract: Cuối cùng, ta kiểm tra trường hợp mua mã token cách gửi ether vào hợp đồng thông minh - Như vậy, ta viết test case cho trường hợp đầu vào kiểm tra trường hợp purchasing token - Như vậy, cộng dồn với test case MyToken Crowdsale ta cần tổng cộng test case phải làm việc, cụ thể ta có kết sau: Cài đặt Chai Chai-as-Promised: Trong file test việc cài đặt chai chai-as-promised giống nhau, ta tiến hành viết thêm file test khác làm tương tự Vì thế, ta sẽs viết file setup riêng, cần import lại cho file test Bây giờ, ta tạo file chaisetup.js với code sau: file test ta import chai sau: - Kết luận - Về đạt mục tiêu đặt sau: - Hiểu qua trình viết test thực viết test cho contract - Thực cập nhật, chuẩn hóa file test cho MyToken - Làm việc với PATH - Dot-Env - Viết unit test cho MyTokenSale - Cài đặt chai file riêng để cấu hình chung THỰC HIỆN GIAO DỊCH TRÊN MARKET PLACE Đầu tiên ta kết nói MARKET PLACE với ganache Sau ta nhấn vào Import Account để Import Account từ ganache, ta dùng Private Key để Import Ta tạo account account import từ ganache Sau ta chuyển 30eth cho quoc1 Ta copy lấy address quoc1 quay account2 để thêm quoc1 vào danh sách trắng, sau thêm thành công ta nhận thông báo Sau add thành công ta vào quoc1 để thực buy Ban đầu số lượng CAPPU Khi ta nhấn vào buy thông báo Ta tiếp tục nhấn Confirm để mua, kết sau mua LỜI KẾT: Thông qua báo cáo hồn thành test, import thư việc cần thiết cho việc tạo nên market place để giao dịch đảm bảo tính cơng bn bán Thơng qua đồ án nhóm chúng em xin cảm ơn Thầy tận tình giúp đỡ tụi em suốt trình học vừa qua, truyền tải cho chúng em kiến thức blockchain, đề tài hay Nhóm em chân thành cảm ơn Thầy ... giải quyết: Cài đặt truffle Vào truffle development Viết writing test - Giải vấn đề: Cài đặt truffle Ta dùng lệnh “npm install -g truffle? ?? để cài đặt truffle Tiếp đến ta dùng lệnh “ truffle unbox... ta có kết sau: Cài đặt Chai Chai-as-Promised: Trong file test việc cài đặt chai chai-as-promised giống nhau, ta tiến hành viết thêm file test khác làm tương tự Vì thế, ta sẽs viết file setup... crowdsale hoạt động, ta phải gửi tất tiền vào hợp đồng Điều thực giai đoạn di chuyển cài đặt truffle: Vấn đề test không thành công Thay đổi Truffle- Test- Suite tiêu chuẩn nghiệm openzeppelin: