1. Trang chủ
  2. » Cao đẳng - Đại học

Tìm hiểu blockchain và xây dựng ứng dụng ví tiền mã hoá và NFT (báo cáo cuối kì đồ án 1)

57 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Blockchain Và Xây Dựng Ứng Dụng Ví Tiền Mã Hoá Và NFT
Tác giả Nguyễn Xuân Hưng, Trương Hưng Huy
Người hướng dẫn ThS. Huỳnh Tuấn Anh
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Đồ Án
Năm xuất bản 2022
Thành phố TPHCM
Định dạng
Số trang 57
Dung lượng 2,85 MB

Cấu trúc

  • 1.1 Thông tin nhóm (7)
  • 1.2 Tổng quan về đề tài (7)
    • 1.2.1 Giới thiệu về đề tài 6 (7)
    • 1.2.2 Phạm vi nghiên cứu 6 (7)
    • 1.2.3 Nội dung nghiên cứu 7 (8)
    • 1.2.4 Kết quả hướng tới 7 (8)
  • 1.3 Công cụ sử dụng (8)
  • 2. Cơ sở lý thuyết và các nghiên cứu liên quan 8 (9)
    • 2.1 Blockchain (9)
      • 2.1.1 Tổng quan : 8 (9)
        • 2.1.1.1 Blockchain là gì ? 8 (9)
        • 2.1.1.2 Cách thức hoạt động của blockchain 8 (9)
      • 2.1.2 Smart Contract 9 (10)
      • 2.1.3 Token ERC-20 (Fungible token) 10 (11)
      • 2.1.4 Token ERC-721 ( Non-Fungible tokens) 11 (12)
      • 2.1.5 Sự khác nhau giữa Non-Fungible Token (NFT) & Fungible Token (FT) 13 (14)
    • 2.2 Web3 là gì ? (14)
      • 2.2.1 Những đột phá 14 (15)
      • 2.2.2 Tiềm năng 15 (16)
      • 2.2.3 Hạn chế 15 (16)
    • 2.3 Flutter là gì ? (17)
      • 2.3.1 Thành phần chính 16 (17)
      • 2.3.2 Tính năng 17 (18)
      • 2.3.3 Lý do nên sử dụng Flutter ? 18 (19)
      • 2.3.4 Tính năng phát triển nhanh chóng các ứng dụng 18 3. Thiết kế cơ sở dữ liêu 20 (19)
    • 3.1 Sơ đồ logic (21)
    • 5.1 Công nghệ sử dụng (55)
    • 5.2 Môi trường cài đặt và kiểm thử (55)
    • 5.3 Độ hoàn thiện chức năng (55)
  • 6. Kết luận 56 (57)
    • 6.1 Tổng kết (57)
    • 6.2 Kết quả đạt được (57)
      • 6.2.1 Ưu điểm 56 (57)
      • 6.2.2 Nhược điểm 56 (57)
    • 6.3 Hướng phát triển (57)

Nội dung

Thông tin nhóm

- Thành viên 1 : Nguyễn Xuân Hưng

Email : 19521578@gm.uit.edu.vn

- Thành viên 2 : Trương Hưng Huy

Email : 19521638@gm.uit.edu.vn

Tổng quan về đề tài

Giới thiệu về đề tài 6

Blockchain hiện đang là xu hướng công nghệ hàng đầu, được áp dụng rộng rãi trong nhiều lĩnh vực và ngành nghề khác nhau Các quốc gia và doanh nghiệp lớn đang đầu tư mạnh mẽ cả về công sức lẫn tài chính để nghiên cứu và phát triển công nghệ blockchain, với mục tiêu tạo ra các sản phẩm thực tiễn và có độ bảo mật cao.

Dựa trên công nghệ blockchain, việc bảo mật thiết bị di động được thực hiện thông qua chữ ký tiền điện tử, nhằm đảm bảo tính chính xác và toàn vẹn của các thiết bị này.

Blockchain cung cấp các đặc tính nổi bật cho việc tạo ra ví tiền điện tử, cho phép lưu trữ, gửi, nhận và theo dõi số dư của các đồng coin/token Ví tiền điện tử có thể được hiểu đơn giản như một tài khoản ngân hàng, nhưng với tính bảo mật cao hơn nhờ vào cơ chế mã hóa thông tin Ngoài ra, ví này không định danh người sở hữu, và tiền trong ví là tiền điện tử.

Phạm vi nghiên cứu 6

Bài nghiên cứu này tập trung vào các chức năng cơ bản của ví tiền điện tử :

- Gửi, nhận và hiển thị thông tin tiền mã hoá đang sở hữu

- Gửi, nhận và hiển thị thông tin NFT đang sở hữu

- Hiển thị lịch sử giao dịch

Nội dung nghiên cứu 7

Nghiên cứu này trình bày các khái niệm cơ bản về blockchain và ví tiền điện tử, đồng thời giới thiệu các tiêu chuẩn token như ERC20 và ERC721 (NFT) Bài viết cũng hướng dẫn cách triển khai hợp đồng thông minh trên một mạng blockchain đơn giản.

Kết quả hướng tới 7

- Tương tác với các contract được deploy trên mạng blockchain

- Xây dựng thành công ví tiền điện tử

Công cụ sử dụng

Cơ sở lý thuyết và các nghiên cứu liên quan 8

Blockchain

Khái niệm blockchain đã trở thành thuật ngữ phổ biến trong ngành công nghệ thông tin và nhiều lĩnh vực khác Các doanh nghiệp, tập đoàn và chính phủ đang tích cực áp dụng công nghệ blockchain để nâng cao hiệu quả công việc trong các lĩnh vực khác nhau.

Mỗi khối trong blockchain chứa thông tin về thời gian khởi tạo và liên kết chặt chẽ với khối trước đó, bao gồm mã thời gian và dữ liệu giao dịch Khi dữ liệu được mạng lưới chấp nhận, nó không thể bị thay đổi, giúp blockchain trở thành một hệ thống an toàn và chống gian lận.

2.1.1.2 Cách thức hoạt động của blockchain

Blockchain là sự kêt hợp giữa 3 loại công nghệ :

- Mật mã học: để đảm bảo tính minh bạch, toàn vẹn và riêng tư thì công nghệ Blockchain đã sử dụng public key và hàm hash function

- Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng là server để lưu trữ bản sao ứng dụng

Lý thuyết trò chơi cho thấy rằng tất cả các nút trong hệ thống cần tuân thủ các quy tắc đồng thuận như giao thức PoW và PoS, đồng thời được thúc đẩy bởi các động lực kinh tế.

Hệ thông blockchain chia thành 3 loại chính :

Blockchain cho phép bất kỳ ai đọc và ghi dữ liệu, với quy trình xác thực giao dịch yêu cầu sự tham gia của nhiều nút Điều này khiến cho việc tấn công vào hệ thống trở nên tốn kém và khó khả thi Các ví dụ điển hình bao gồm Bitcoin và Ethereum.

Private Blockchain cho phép người dùng chỉ có quyền đọc dữ liệu mà không thể ghi, vì việc này thuộc về tổ chức thứ ba đáng tin cậy Do tính chất của Private Blockchain, thời gian xác nhận giao dịch diễn ra nhanh chóng nhờ vào số lượng thiết bị tham gia xác thực ít Một ví dụ điển hình là Ripple, nơi mà hệ thống cho phép 20% các nút có thể gian dối, miễn là 80% còn lại hoạt động ổn định.

Permissioned, hay còn gọi là Consortium, là một dạng blockchain Private nhưng tích hợp thêm nhiều tính năng khác, kết hợp giữa Public và Private Ví dụ, các ngân hàng và tổ chức tài chính liên doanh thường sử dụng blockchain riêng để tối ưu hóa quy trình và bảo mật thông tin.

Hợp đồng thông minh (Smart Contract) là các chương trình hoạt động trên blockchain, tương tự như hợp đồng kỹ thuật số, nhưng được thực hiện theo một bộ quy tắc cụ thể Những quy tắc này được xác định bởi mã máy tính đã được lập trình sẵn, và tất cả các nút (node) trong mạng phải sao chép và thực thi chúng.

Smart Contract là đoạn mã hoạt động trên hệ thống blockchain, cho phép thiết lập các giao thức Permissionless mà không cần sự cấp phép.

- Hai bên trong hợp đồng có thể đưa ra các cam kết thông qua blockchain mà không cần phải biết về danh tính hay tin tưởng lẫn nhau

- Họ có thể đảm bảo rằng nếu các điều kiện của hợp đồng không được thỏa mãn, hợp đồng sẽ không được thực thi

Ngoài ra, việc sử dụng hợp đồng thông minh loại bỏ nhu cầu đối với các bên trung gian, giúp giảm đáng kể chi phí hoạt động

Mỗi blockchain sử dụng phương pháp triển khai hợp đồng thông minh riêng, như Cosmos với WASM và Polkadot với ink!, nhưng nổi bật nhất vẫn là hợp đồng thông minh chạy trên máy ảo Ethereum (Ethereum Virtual Machine - EVM).

ERC20 là tiêu chuẩn kỹ thuật cho việc phát hành và triển khai token trên mạng Ethereum, thuộc loại Fungible Token Tiêu chuẩn này cung cấp cho các nhà phát triển danh sách quy tắc cần tuân thủ, giúp các token ERC20 hoạt động mượt mà trong hệ sinh thái Ethereum.

The ERC20 contract structure consists of six mandatory functions: totalSupply, balanceOf, transfer, transferFrom, approve, and allowance Additionally, it includes optional functions such as name, symbol, and decimal.

Bằng cách kết hợp các chức năng cần thiết, chúng ta có thể tạo ra token ERC20, cho phép truy vấn tổng nguồn cung, kiểm tra số dư, thực hiện chuyển tiền và cấp quyền cho các DApp khác quản lý token của mình.

Mỗi token ERC20 đều có tính chất thay thế lẫn nhau, nghĩa là mỗi đơn vị đều có giá trị và khả năng sử dụng tương đương Ví dụ, việc bạn nắm giữ 1 USDC không phụ thuộc vào token cụ thể nào mà bạn có, bạn có thể dễ dàng giao dịch hoặc trao đổi với token của người khác mà không có sự khác biệt về chức năng Điều này tương tự như việc bạn có thể trả bằng bất kỳ tờ tiền 10,000 VND nào khi mua sắm Tính chất này rất có lợi cho những token có mục tiêu trở thành một loại tiền tệ, vì bạn không muốn các đơn vị riêng lẻ có những đặc điểm khác biệt, điều này có thể gây khó khăn trong việc sử dụng.

Một số token có thể trở nên có giá trị hơn hoặc ít giá trị hơn so với các token khác, điều này có thể làm suy yếu mục đích sử dụng của chúng và dẫn đến sự không thể thay thế trong hệ sinh thái.

Smart Contract có thể được hiểu đơn giản là một chương trình tự động, thực hiện các tác vụ cụ thể khi các điều kiện nhất định được đáp ứng Hệ thống Smart Contract thường hoạt động dựa trên các quy tắc "nếu… thì…", giúp đảm bảo tính chính xác và tự động trong việc thực thi các giao dịch.

Web3 là gì ?

Web 3.0 là thế hệ thứ ba sắp tới của Internet, nơi các trang web và ứng dụng sẽ có thể xử lý thông tin theo cách thông minh giống như con người thông qua các công nghệ như máy học (ML), Dữ liệu lớn, công nghệ sổ cái phi tập trung (DLT), v.v Ban đầu, Web 3.0 được nhà phát minh World Wide Web, Tim Berners-Lee, gọi là Semantic Web, và nó nhằm mục đích trở thành một internet tự chủ, thông minh, và cởi mở hơn Định nghĩa Web 3.0 có thể được mở rộng như sau: dữ liệu sẽ được kết nối với nhau theo cách phi tập trung Đây sẽ là một bước tiến vượt bậc so với thế hệ internet hiện tại của chúng ta (Web 2.0), nơi dữ liệu chủ yếu được lưu trữ trong các kho lưu trữ tập trung Hơn nữa, người dùng và máy móc sẽ có thể tương tác với dữ liệu Nhưng để làm được điều này, các chương trình cần hiểu được thông tin cả về mặt khái niệm lẫn ngữ

14 | P a g e cảnh Với suy nghĩ này, Web 3.0 có hai nền tảng là semantic web (mạng ngữ nghĩa) và trí tuệ nhân tạo (AI)

Web 3.0 thừa hưởng các đặc tính tốt của Web 2.0 và có thêm những yếu tố giúp giải quyết hạn chế của Web 2.0 bao gồm:

- Verifiable: Mọi thứ đều minh bạch và có thể xác nhận on-chain

- Trustless & Permissionless: Hạn chế tối đa những yếu tố liên quan đến lòng tin và bất kỳ ai cũng có thể tham gia

- Self-Governing: Lấy người dùng làm trọng tâm, bản thân người dùng có toàn quyền với thông tin và tài sản của mình

Quyền lực trong hệ thống này được phân phối cho người dùng, với các quyết định được thực hiện bởi các tổ chức tự trị phi tập trung (DAO) Điều này đảm bảo rằng không có bất kỳ tổ chức trung ương nào có thể kiểm soát quá trình ra quyết định.

Các ứng dụng Web 3.0 tích hợp thanh toán gốc, cho phép người dùng thực hiện giao dịch mà không cần cung cấp thông tin cá nhân Điều này đảm bảo tính riêng tư và an toàn cho người dùng, đồng thời không có rào cản trong việc thực hiện các giao dịch tài chính.

Web 3.0 và blockchain có mối quan hệ chặt chẽ, với blockchain là nền tảng thiết yếu cho sự phát triển của Web 3.0 Sự phát triển mạnh mẽ của blockchain không phải ngẫu nhiên, mà chính là yếu tố quan trọng trong việc hình thành Web 3.0 Có thể khẳng định rằng, blockchain đã tạo điều kiện cho Web 3.0 ra đời, và ngược lại, Web 3.0 cũng thúc đẩy sự tiến bộ của blockchain.

Web 3.0 đang tạo ra những đột phá lớn, mở ra cánh cửa cho các mô hình kinh doanh và ngành nghề mới mà trước đây khó có thể tưởng tượng.

Một minh chứng nổi bật hiện nay là Crypto, nơi công nghệ blockchain được áp dụng để loại bỏ yếu tố lòng tin và sự cần thiết của bên thứ ba trong giao dịch Điều này đã mang lại những trải nghiệm và sản phẩm thực sự ấn tượng cho người dùng.

Chỉ cần một chiếc ví Non-Custodial, ta có thể gửi tiền cho bất kỳ ai ở bất kỳ đâu trên thế giới

DeFi cho phép người dùng gửi tiền vào ngân hàng mà không cần đến trực tiếp, với lãi suất hấp dẫn hơn Ngoài ra, người vay có thể thực hiện giao dịch mà không cần gặp mặt chủ nợ Bằng cách xoay vòng vốn hoặc tham gia farming, người dùng có thể tối ưu hóa lợi nhuận một cách hiệu quả.

Các trò chơi Play to Earn và NFT đã mang lại lợi ích lớn cho người chơi khi tài sản trong game thuộc về họ và không thể bị phá hủy Điều này không chỉ giúp bảo vệ giá trị tài sản mà còn mở ra cơ hội tạo ra nguồn thu nhập từ việc tham gia vào trò chơi.

- Ngoài ra còn rất nhiều những đột phá khác đang chờ được khám phá

Tuy có một tiềm năng rất to lớn nhưng phải thừa nhận rằng Web 3.0 vẫn còn ở giai đoạn khá sơ khởi

Một vài hạn chế có thể kể đến như:

- Tính mở rộng: Vẫn còn một khoảng cách lớn giữ Web 2.0 và Web 3.0 nếu xét về tính mở rộng, tốc độ xử lý, chi phí,

Trải nghiệm người dùng (UX) trong Web 3.0 chưa thực sự tối ưu, bởi để tham gia vào các sản phẩm như Crypto, người dùng phải học hỏi kiến thức mới, cài đặt phần mềm và thực hiện nhiều bước phức tạp Điều này tạo ra rào cản lớn đối với việc áp dụng rộng rãi.

Tính tiếp cận của các ứng dụng hiện nay bị hạn chế do chúng thường được xây dựng độc lập, không tích hợp với những ứng dụng phổ biến của Web 2.0, dẫn đến việc người dùng gặp khó khăn trong việc tiếp cận và sử dụng chúng.

Chi phí phát triển dự án dapps rất cao, đặc biệt là khi phải đối mặt với phí gas của Ethereum và chi phí audit, khiến cho việc triển khai code lên blockchain trở nên khó khăn.

Mặc dù còn nhiều hạn chế, nhưng những vấn đề này đang dần được khắc phục Giai đoạn đầu của Web 3.0 mang lại nhiều cơ hội cho những ai tin tưởng vào tương lai của công nghệ này và phát triển các sản phẩm liên quan.

Flutter là gì ?

Flutter là nền tảng phát triển phần mềm hỗ trợ tạo ra ứng dụng di động đa nền tảng cho hệ điều hành iOS và Android, được phát triển bởi tập đoàn Google Đây là một công cụ mạnh mẽ giúp lập trình viên xây dựng ứng dụng một cách nhanh chóng và hiệu quả.

Flutter là một công cụ phổ biến trong cộng đồng lập trình hiện nay, có nhiệm vụ chính là phát triển các ứng dụng gốc cho Google Đây là định nghĩa đầy đủ nhất về Flutter.

Flutter gồm 2 thành phần quan trọng:

Một SDK (Bộ công cụ phát triển phần mềm) là tập hợp các công cụ hỗ trợ bạn trong việc phát triển ứng dụng Nó bao gồm các công cụ cần thiết để biên dịch mã nguồn của bạn thành mã máy gốc, phục vụ cho các hệ điều hành như iOS và Android.

A UI framework based on reusable widgets offers a collection of UI components, such as buttons, text inputs, and sliders, allowing you to customize your interface according to your specific needs.

Hai thành phần chính của Flutter là yếu tố quan trọng nhất trong việc phát triển ứng dụng và trang web Hầu hết các nền tảng hiện nay đều sử dụng framework, và sự lựa chọn framework phụ thuộc vào mục đích sử dụng của người phát triển Tuy nhiên, những tính năng mà framework mang lại thường rất hiệu quả.

Sau khi tìm hiểu về định nghĩa và thành phần của Flutter, chúng tôi nhận thấy rằng tính năng của nền tảng này cũng rất quan trọng Các lập trình viên trước khi sử dụng Flutter cần hiểu rõ các tính năng của nó Đối với chuyên gia lập trình, Flutter được xem như một framework tương tự React, mang lại sức mạnh và tiện lợi trong việc phát triển ứng dụng cho Google Nền tảng này sử dụng ngôn ngữ lập trình Dart, dễ hiểu và dễ tiếp cận, ngay cả với những lập trình viên mới.

Flutter không chỉ giúp phát triển ứng dụng nhanh chóng và linh hoạt, mà còn mang đến giao diện người dùng dễ hiểu và đẹp mắt, điều này được đánh giá cao trong các tính năng của nó Một điểm nổi bật khác của Flutter là khả năng hỗ trợ nhiều widget khác nhau, cho phép tạo ra các ứng dụng đa dạng Hơn nữa, Flutter có thể hoạt động trên nhiều nền tảng khác nhau, mở rộng khả năng phát triển ứng dụng.

Flutter nổi bật với hiệu năng làm việc cao và nhanh chóng, điều này được các lập trình viên đánh giá rất cao Những tính năng ưu việt của Flutter giúp phát triển ứng dụng gốc cho Google và các nền tảng khác một cách hiệu quả Chính vì lý do này, Flutter đã trở thành lựa chọn phổ biến của nhiều nhà lập trình.

2.3.3Lý do nên sử dụng Flutter ?

Sau khi khảo sát các lập trình viên, chúng tôi nhận thấy nhiều lý do thuyết phục cho việc sử dụng Flutter Không chỉ vì hiệu quả mà Flutter mang lại, mà còn vì những lợi ích cụ thể mà nó cung cấp cho các nhà phát triển.

2.3.4Tính năng phát triển nhanh chóng các ứng dụng Đây là một trong số những tính năng chúng tôi đã kể đến phía trên Tuy nhiên, nó thực sự là một lý do thuyết phục người dùng lựa chọn Flutter có rất nhiều tính năng hot reload Người dùng có thể trải nghiệm nhanh chóng và dễ dàng hơn rất nhiều so với nền

19 | P a g e tảng khác Đây chính là lời giải đáp cho câu hỏi lý do nên sử dụng Flutter là gì? Các bạn nên cân nhắc về điều này

Khả năng xây dựng giao diện và sửa lỗi nhanh chóng là những tính năng quan trọng giúp người dùng phát triển ứng dụng một cách dễ dàng Ngoài ra, trải nghiệm tải lại cũng rất thuận tiện, không làm mất đi trạng thái trên emulator, simulator và thiết bị cho cả iOS và Android.

3 Thiết kế cơ sở dữ liêu

Sơ đồ logic

3.2 Danh sách các quan hệ

3.2.1Bảng wallet : Thông tin ví tiền mã hoá

STT Thực thể Kiểu dữ liệu Ghi chú

1 address String Địa chỉ ví

2 privateKey String Chuỗi khôi phục ví

3 isImportWallet boolean Loại ví được import

4 balanceToken Token Thông tin số tiền hiện có của ví

5 Index Int Thứ tự của ví trên app

6 Avatar ImageData Lưu hình ảnh đại diện của ví

3.2.2Bảng token : Thông tin tiền mã hoá

STT Thực thể Kiểu dữ liệu Ghi chú

1 address String Địa chỉ token

2 Symbol String Kí hiệu token

3 Decimal Int Giá trị nhị phân

4 imageUrl String Đường dẫn hình ảnh

5 Balance Double Số dư của token

6 Avatar ImageData Lưu hình ảnh đại diện của token

7 Amunt Double Số dư quy đổi ra tiền tệ

3.2.3Bảng transaction : Thông tin giao dịch

STT Thực thể Kiểu dữ liệu Ghi chú

1 Hash String Chuỗi hash đại diện của giao dịch

2 From String Chuyển từ địa chỉ ví

3 To String Đến địa chỉ ví

4 Timestamp Int Thời gian giao dịch

5 Type Int Loại giao dịch

3.2.4Bảng nft : Thông tin vật phẩm

STT Thực thể Kiểu dữ liệu Ghi chú

1 Name String Tên vật phẩm

2 Image String Đường dẫn hình ảnh đại diện

3 Description String Chú thích vật phẩm

4 tokenId Int Số đại diện cho vật phẩm

4.1 Danh sách các màn hình

STT Màn hình Chức năng

1 Màn hình đăng nhập Đăng nhập vào ví thông qua vân tay (nếu có) hoặc mã pin

2 Màn hình Loading Menu chứa các thông tin như address, chế độ chơi ,hướng dẫn chơi,…

3 Màn hình Home Màn hình hiển thị các thông tin chung của ví như địa chỉ ví, tên ví, button nhận token và gửi/rút token

4 Màn hình chọn account Thay đổi nhanh account hiện tại

5 Dialog báo lỗi Hiển thị dialog báo lỗi

6 Màn hình thêm ví từ private key

Thêm ví từ private key

Màn hình ví token hiển thị đầy đủ thông tin như avatar, tên ví, địa chỉ ví và số dư hiện tại Người dùng cũng có thể xem tất cả các token đã thêm vào ví cùng với số dư của từng token, giúp quản lý tài sản một cách hiệu quả.

Màn hình ví NFT hiển thị thông tin quan trọng như avatar, tên ví, địa chỉ ví, số dư hiện tại, cùng với tất cả các bộ sưu tập NFT mà người dùng đã thêm vào và đang sở hữu, bao gồm cả các NFT trong từng bộ sưu tập tương ứng.

9 Màn hình thêm token Cho phép người dùng thêm token hợp lệ vào ví

Màn hình chi tiết token trên Etherscan cung cấp thông tin quan trọng về token, bao gồm tổng cung, số lượng người nắm giữ, số lượng giao dịch và địa chỉ smart contract của token.

11 Màn hình thêm nft collection

Cho phép người dùng thêm NFT collection hợp lệ vào ví

12 Màn hình lịch sử giao dịch Hiển thị lịch sử giao dịch

(chuyển, nhận/rút, quy đổi) của ví đang được chọn

Màn hình chi tiết giao dịch trên Etherscan cung cấp thông tin quan trọng về giao dịch, bao gồm tổng cung của token, số người nắm giữ, số lượng giao dịch, và địa chỉ smart contract liên quan.

Màn hình cài đặt hiển thị các tùy chọn mà người dùng có thể xem và chỉnh sửa, bao gồm việc đăng xuất, thông tin ứng dụng, bảo mật và riêng tư, cùng với các cài đặt chung.

15 Màn hình cài đặt chung Cho phép đổi đơn vị tiền tệ giữa

USD và VND, đổi ngôn ngữ tiếng Anh và tiếng Việt

Màn hình bảo mật và riêng tư cung cấp các tùy chọn cho người dùng, bao gồm việc xem lại cụm từ bí mật, thay đổi mật khẩu và kiểm tra private key.

17 Màn hình xác thực mật khẩu

Yêu cầu xác thực mật khẩu

18 Màn hình xem cụm từ bí mật của ví

Xem lại cụm từ bí mật của ví

19 Màn hình đổi mật khẩu Đổi mật khẩu

20 Màn hình xem private key của ví

Xem lại private key của tài khoản đang chọn

21 Màn hình thông tin về ứng dụng

Xem thông tin về ứng dụng

22 Màn hình chính sách bảo mật

Xem chính sách bảo mật

23 Màn hình điều khoản sử dụng

Xem điều khoản sử dụng

24 Màn hình nhận token Hiển thị mã QR để người gửi quét và hiển thị địa chỉ ví của người dùng cho phép copy và share

25 Màn hình rút token (chuyển token)

Cho phép chuyển token hoặc rút đến địa chỉ ví khác

26 Màn hình chuyển NFT Cho phép chuyển NFT hoặc rút đến địa chỉ ví khác

27 Dialog cảnh báo Hiển thị dialog cảnh báo

28 Toast báo lỗi Hiển thị toast báo lỗi

29 Toast thành công Hiển thị toast thành công

30 Màn hình onboarding Dẫn đến màn hình tạo ví hoặc nhập ví

31 Màn hình tạo ví Tạo ví mới

32 Màn hình nhập ví từ cụm từ bí mật

33 Màn hình quét mã QR Quét mã để chuyển token nhanh

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình Đăng nhập gồm:

- Avatar của ví đã được lưu

- Đăng nhập bằng vân tay

• Mô tả chung và xử lí các sự kiện trên màn hình:

- Hiển thị network hiện tại, button để scan

QR ➔ hiển thị màn hình quét mã QR

- Thanh chứa avatar, tên account, địa chỉ ví, click vào sẽ hiển thị màn hình chọn account

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình Chọn Account gồm:

- Hiển thị các account đã được thêm hiện tại với số dư của mỗi account ➔ Click vào sẽ chuyển account hiện tại sang account đang click

- Nhấn giữ vào account bất kì sẽ hiển thị dialog xoá account

- Button “Import An Account” khi click sẽ navigate sang màn hình thêm ví từ private key

- Button “Create New Account” khi click sẽ tạo ví mới từ mnemonic phrase hiện tại

4.2.5 Màn hình thêm ví từ private key

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình Thêm ví từ private key gồm:

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình ví token gồm:

- Avatar, tên, địa chỉ, số dư ví hiện tại

- Danh sách các token ứng với số dư của token, khi click vào token sẽ navigate sang màn hình chi tiết token

- Button “Import tokens” khi click vào sẽ navigate sang màn hình thêm token

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình ví nft gồm:

- Avatar, tên, địa chỉ, số dư ví hiện tại

The NFT collection list allows users to click and expand to reveal the NFTs within each collection By selecting any specific NFT, users are seamlessly navigated to the NFT transfer screen.

- Button “Import nfts” khi click vào sẽ navigate sang màn hình thêm nft collection

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình thêm token gồm:

- Các textfield để điền địa chỉ contract của token, khi điền đúng sẽ auto fill 2 textfield còn lại

4.2.9 Màn hình chi tiết token

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình chi tiết token gồm:

- Hiển thị thông tin chi tiết của token như tổng cung, số người đang nắm, số lượng giao dịch, địa chỉ của smart contract của token,… trên Etherscan

4.2.10 Màn hình thêm nft collection

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình thêm nft collection gồm:

- Textfield nhập địa chỉ contract của collection, nếu nhập đúng textfield tên bên dưới sẽ auto fill

- Button “Thêm vào bộ sưu tập”

4.2.11 Màn hình lịch sử giao dịch

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình lịch sử giao dịch gồm:

- Danh sách lịch sử các giao dịch gần đây, được chia làm các loại như gửi, nhận, quy đổi

- Khi click vào một giao dịch bất kì sẽ navigate sang screen chi tiết giao dịch

4.2.12 Màn hình chi tiết giao dịch

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình chi tiết giao dịch gồm:

- Hiển thị thông tin chi tiết của giao dịch như tổng cung, số người đang nắm, số lượng giao dịch, địa chỉ của smart contract của token,… trên Etherscan

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình cài đặt gồm:

- Hiển thị các tuỳ chọn cài đặt người dùng có thể xem hoặc chỉnh sửa như đăng xuất, thông tin app bảo mật và riêng tư, cài đặt chung

4.2.14 Màn hình cài đặt chung

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình cài đặt chung gồm:

- Dropdown chọn đơn vị tiền tệ và đổi ngôn ngữ

4.2.15 Màn hình bảo mật và riêng tư

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình bảo mật và riêng tư gồm:

- Hiển thị các tuỳ chọn cho phép người dùng xem lại cụm từ bí mật, thay đổi mật khẩu, xem lại private key

4.2.16 Màn hình xác thực mật khẩu

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình xác thực mật khẩu gồm:

- Textfield để nhập mật khẩu

- Button “Confirm” để xác thực

- Button ‘Login with biometrics” để xác thực bằng vân tay

4.2.17 Màn hình xem cụm từ bí mật của ví

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình xem cụm từ bí mật gồm:

- Cụm từ bí mật và button “Done” để back về màn hình setting

4.2.18 Màn hình đổi mật khẩu

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình đổi mật khẩu gồm:

- Textfield nhập mật khẩu mới

- Textfield nhập lại mật khẩu mới

- Checkbox miễn trừ trách nhiệm

4.2.19 Màn hình xem private key của ví

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình xem private key của ví gồm:

- Private key và button “Done” để back về màn hình setting

4.2.20 Màn hình thông tin về ứng dụng

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình thông tin về ứng dụng gồm:

- Button “Privacy Policy” khi click sẽ navigate sang màn hình chính sách bảo mật

- Button “Terms of Use” khi click sẽ navigate sang màn hình điều khoản sử dụng

4.2.21 Màn hình chính sách bảo mật

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình chính sách bảo mật hiển thị chính sách bảo bật của ứng dụng

4.2.22 Màn hình điều khoản sử dụng

• Mô tả chung và xử lí các sự kiện trên màn hình:

- Màn hình điều khoản sử dụng hiển thị điều khoản sử dụng của ứng dụng

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình nhận token gồm:

- Mã QR của địa chỉ ví hiện tại

- Địa chỉ ví hiện tại, có thể click vào để copy

- Button share để share địa chỉ ví

4.2.24 Màn hình rút token (chuyển token)

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình rút token (chuyển token) gồm:

- Textfield nhập địa chỉ ví người nhận

- Button max để chọn số lượng tối đa của token đang được chọn

- Textfield hiển thị số lượng muốn chuyển

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình chuyển NFT gồm:

- Hiển thị địa chỉ ví người chuyển

- Textfield dùng để nhập địa chỉ ví người nhận, nếu địa chỉ hợp lệ sẽ có button chuyển

• Mô tả chung và xử lí các sự kiện trên màn hình:

- Button “Create Wallet” khi click sẽ navigate sang màn hình tạo ví

- Button “Import Wallet” khi click sẽ navigate sang màn hình nhập ví từ cụm từ bí mật

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình tạo ví gồm:

- 2 Text field để nhập password và xác nhận lại

- Button “Create password” khi click sẽ chuyển sang step 2, hiển thị cụm từ bí mật

- Button “Get started” khi click sẽ navigate sang home screen

4.2.28 Màn hình nhập ví từ cụm từ bí mật

• Mô tả chung và xử lí các sự kiện trên màn hình:

Màn hình nhập ví từ cụm từ bí mật gồm:

- Text field để nhập cụm từ bí mật

- 2 Text field để nhập password và xác nhận lại

- Button “Import Wallet” khi click sẽ xác nhận cụm từ hợp lệ hay không, nếu hợp lệ sẽ navigate sang trang home, không thì báo lỗi0

5 Công nghệ sử dụng, cài đặt và độ hoàn thiện chức năng

Công nghệ sử dụng

- Công nghệ Flutter dựa trên ngôn ngữ Dart

- Sử dụng các design pattern như Singleton, Facade, Observer, Factory Method, Prototype, Composite, State

- Backend: NodeJS, TypeScript, Express, PosgreSQL.

Môi trường cài đặt và kiểm thử

APK: https://tinyurl.com/25ec5s6o

Thiết bị cài đặt: Thiết bị di động cài đặt Android 8.0 trở lên.

Độ hoàn thiện chức năng

STT Màn hình Mức độ hoàn thành Người đảm nhiệm

1 Màn hình đăng nhập 100% Hưng

5 Dialog báo lỗi 100% Huy, Hưng

6 Màn hình thêm ví từ private key

7 Màn hình ví token 100% Hưng

8 Màn hình ví nft 100% Hưng

9 Màn hình thêm token 100% Hưng

10 Màn hình chi tiết token

11 Màn hình thêm nft collection

12 Màn hình lịch sử giao dịch

13 Màn hình chi tiết giao dịch

14 Màn hình cài đặt 100% Huy, Hưng

15 Màn hình cài đặt chung

16 Màn hình bảo mật và riêng tư

17 Màn hình xác thực mật khẩu

18 Màn hình xem cụm từ bí mật của ví

19 Màn hình đổi mật khẩu

20 Màn hình xem private key của ví

21 Màn hình thông tin về ứng dụng 100% Hưng, Huy

22 Màn hình chính sách bảo mật

23 Màn hình điều khoản sử dụng

24 Màn hình nhận token 100% Hưng

26 Màn hình chuyển NFT 100% Hưng

31 Màn hình tạo ví 100% Huy

32 Màn hình nhập ví từ cụm từ bí mật

33 Màn hình quét mã QR 100% Huy

Ngày đăng: 16/06/2022, 20:31

HÌNH ẢNH LIÊN QUAN

3.1  Sơ đồ logic - Tìm hiểu blockchain và xây dựng ứng dụng ví tiền mã hoá và NFT (báo cáo cuối kì đồ án 1)
3.1 Sơ đồ logic (Trang 21)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w