Nếu bạn đang quan tâm đến Ether (ETH) hơn các đối thủ khác trong lĩnh vực tiền điện tử, bạn nên dành chút thời gian để hiểu về Ethereum từ một góc độ kỹ thuật hơn. Một giao thức blockchain nổi tiếng với bộ công cụ, hợp đồng thông minh và hệ sinh thái được điều chỉnh bằng mã nguồn, Ethereum phụ thuộc nhiều vào ethers.js - một thư viện Javascript - để mang lại sức mạnh cần thiết cho cách tiếp cận hướng tới các nhà phát triển.
Mặc dù ethers.js không phải là thư viện JavaScript native Ethereum duy nhất, nhưng đó là lựa chọn tốt hơn cho các ứng dụng phi tập trung nhỏ hơn. Trong hướng dẫn này, chúng tôi sẽ đi sâu vào các khía cạnh của ethers.js, giúp bạn hiểu rõ hơn về khái niệm kỹ thuật này.
Trong hướng dẫn này:
ethers.js là một thư viện JavaScript — một tập hợp mã đã được viết trước để tự động hóa một số chức năng. Sử dụng thư viện JavaScript cho việc phát triển có thể giảm thiểu nỗ lực viết mã. Quá trình trở nên thân thiện hơn với người dùng, và đối với các nhà phát triển DApp, những thư viện này giúp cung cấp các chức năng cụ thể cho blockchain cơ bản dưới dạng bản gói.
Ethers.js và chu kỳ phát triển: BeInCrypto
Đây là GitHubkho lưu trữcho thư viện.
Trước khi chúng ta đào sâu vào ethers.js, hãy xem xét kỹ hơn về các thư viện JavaScript. Các thư viện này là bộ mã JavaScript được viết sẵn có thể tự động hóa các công việc phổ biến cụ thể. Sử dụng các thư viện như ethers.js có thể tăng tốc quá trình tạo DApp và thậm chí tăng tốc các tương tác cụ thể trên blockchain khác.
Ethereum đã phát triển thành một nền tảng phát triển phần mềm phi tập trung.hợp đồng thông minhđểDeTừ ứng dụng tài chính đến DApps, việc lập trình là không thể thiếu trong hệ sinh thái Ethereum. Đó chính là lý do tại sao các thư viện JavaScript được tinh chỉnh cho Ethereum như ethers.js tồn tại. Sử dụng những thư viện này, các nhà phát triển có thể kết nối với mạng, triển khai và tương tác với các hợp đồng thông minh, và quản lý dễ dàng blockchaindữ liệu.
Bạn có biết không? Ethers.js không phải là thư viện Javascript Ethereum duy nhất được biết đến. Một thư viện đáng chú ý khác là Web3.js, được thành lập bởi Ethereum Foundation. Web3.js nổi tiếng với bộ tài liệu đầy đủ và được thiết kế cho các ứng dụng phi tập trung phức tạp hơn.
Như đã đề cập trước đó, ethers.js nhằm mục đích hướng tới các nhà phát triển tương tác với blockchain Ethereum. Về mức độ quan trọng, thư viện này được phát triển bởi Richard Moore, được tiếp thị dưới tên gọi "Ether," hữu ích cho các công việc sau:
Hệ sinh thái Ethers.js và các vai trò mà nó có thể đảm nhận: BeInCrypto
Đây là một ví dụ nhanh về đoạn mã được sử dụng để lấy số dư hiện tại của một tài khoản Ethereum. Hãy đọc mã trước và hiểu cách mà ethers.js giúp cuộc sống dễ dàng hơn:
const { ethers } = require('ethers');
// Kết nối với mạng Ethereum
const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);
// Chỉ định địa chỉ tài khoản
const accountAddress = ‘0xABC123…’;
// Fetch and display the balance
provider.getBalance(accountAddress).then((balance) => {
// Chuyển đổi số dư từ Wei sang Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Số dư: ${balanceInEther} ETH`);
});
Trong ví dụ này, bạn có thể thấy rõ cách lệnh - ethers.providers.JsonRpcProvider - gọi một điểm cuối Infura, và getBalance truy xuất số dư. Bạn không cần phải đối mặt trực tiếp với JSON RPC của Ethereum hoặc cuộc gọi thủ tục từ xa. Trong trường hợp này, bạn có thể nghĩ về ethers.js như một bộ phiên dịch giúp Ethereum trở nên dễ dàng và quen thuộc hơn với bạn.
Vẫn chưa chắc chắn về ý nghĩa của ethers.js? Đây là một ví dụ nhanh.
Hãy nghĩ về ethers.js như một thẻ thư viện cũ. Hãy nhớ rằng những thẻ đó có danh mục, cho phép bạn tìm cuốn sách đúng bằng cách xác định dãy và sau đó là số giá. Đó là mục tiêu mà ethers.js hướng đến. Nó giúp đơn giản hóa và tổ chức các khả năng rộng lớn của Ethereum, giúp cho các nhà phát triển tìm chính xác những gì họ cần.
Trong những năm qua, đã xuất hiện một số phiên bản Ethers.js, mỗi phiên bản giới thiệu một tính năng mới hoặc một sửa lỗi. Ngoài ra, việc đánh số phiên bản tuân theo cú pháp chuẩn, như v1.2.3, trong đó số đầu tiên biểu thị phiên bản chính và số thứ hai và ba biểu thị phiên bản phụ và sửa lỗi. Chúng ta chỉ xem xét việc nâng cấp phiên bản chính cho đến nay - những thay đổi có thể không tương thích ngược.
Kiến trúc và các thành phần của Ethers.js: BeInCrypto
Bạn có thể tìm thêm chi tiết về mỗi phiên bản bằng cách xem Ethers.js’tài liệu gốc.
“Ethers.js tỏa sáng với khả năng tương tác blockchain vượt trội, hỗ trợ TypeScript nguyên bản và các công cụ debug tiên tiến. Đó là một thư viện nhẹ nhàng mà tích hợp một cách mượt mà vào các framework phổ biến như React, Vue, Angular v.v.”
Redbelly Intern, Builder: X
Trước khi bạn dự định tận dụng tiềm năng của ethers.js, cần phải biết ở giai đoạn nào của việc phát triển DApp hoặc hợp đồng thông minh nó được gọi. Đây là một phân tách nhanh chóng cho những người cần biết và hiểu rõ những yếu tố này từ đầu.
“Web3.js là dễ sử dụng cho người mới bắt đầu và ngắn gọn hơn ethers.js.
Ethers.js, on the other hand, gives more options and is new; it is a little bit more complex than Web3.js.”
degenBRo, nhà phát triển blockchain và người sáng lập của Solidity Finance: Đã nói với BeInCrypto
Để bắt đầu, bạn cần mở máy tính và thiết lập môi trường phát triển. Điều này bao gồm Node.js và Môi trường Phát triển Tích Hợp. Lưu ý rằng JavaScript thường chạy trên trình duyệt, nhưng với Node.js, cùng một code có thể chạy trên máy tính. Đó là môi trường thực thi Node.js cài đặt thư viện Javascript như ethers.js.
Về IDE, mà một nhà phát triển phần mềm cần để thử nghiệm, bạn có thể xem xét VS Code, Sublime Text, hoặc bất cứ thứ gì khác.
Bước tiếp theo là cài đặt Ethers, thư viện chứa ethers.js.
npm cài đặt ethers
Sau đó, bạn cần sử dụng Ether để kết nối với Ví Ethereum, vì việc tương tác với blockchain sẽ yêu cầu bước này để xác thực thông tin. Bạn có thể sử dụng thư viện Ethers đã cài đặt cho việc này. Đây là lệnh mẫu:
14 phút Mar 15, 2024 3 ngày trước
25 phút Mar 15, 2024 2 ngày trước
const { ethers } = require(‘ethers’);
// Kết nối với MetaMaskví
const provider = new ethers.providers.Web3Provider(window.ethereum);
Sau khi hoàn thành, bạn có thể sử dụng IDE để viết mã solidity và tạo hợp đồng thông minh cho DApps. Ethers.js sẽ được sử dụng để triển khai mã. Bạn cũng có thể kiểm tra DApp hoặc hợp đồng một cách địa phương, sử dụng môi trường như Trufflevà Hardhat. Sau đó, bạn triển khai các hợp đồng lên mạng lưới Ethereum, cho đó cần ethers.js.
const contract = new ethers.ContractFactory(abi, bytecode, signer);
const deployedContract = chờ contract.deploy();
Đối với những người không rành về, Bytecode, Signer là những thuật ngữ cần thiết cho việc phát triển hợp đồng thông minh mượt mà. Abi hoặc giao diện nhị phân ứng dụng cũng giống như nhãn giúp mạng nhận dạng hợp đồng thông minh của bạn. Bytecode là phiên bản đã biên dịch hoặc chuẩn bị sẵn sàng cho mạng của hợp đồng thông minh và người ký là thực thể tạo chữ ký.
Khi hợp đồng thông minh được triển khai, bạn cần xây dựng giao diện người dùng hoặc giao diện người dùng của DApp. Đối với điều này, bạn có thể sử dụng Angular hoặc React. Bạn thậm chí có thể tích hợp Ethers.js vào phía trước để đảm bảo rằng nó có thể tương tác với hợp đồng thông minh Ethereum. Đây là mã mẫu cho việc đó:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contract = new ethers.Contract(contractAddress, contractABI, provider.getSigner());
Sau đó, bạn cần thử nghiệm DApp trên mạng thử nghiệm, ví dụ như Rinkeby hoặc Ropsten. Khi bạn hài lòng, bạn có thể triển khai DApp trên mainnet. Chú ý xem có bao nhiêu lần trong quá trình bạn cần tương tác với Ether hoặc ethers.js.
Ethers.js được coi là một thư viện Ethereum toàn diện. Dưới đây là một số ưu đãi độc quyền có thể giúp cuộc sống của các nhà phát triển trở nên dễ dàng:
Các nhà cung cấp Ethers.js hoạt động như cầu nối giữa mạng lưới Ethereum và ứng dụng phi tập trung (DApp) mà bạn đang làm việc. Điều này bao gồm việc đơn giản hóa việc truy vấn dữ liệu blockchain và cũng giúp phát sóng giao dịch. Infura là một trong những nhà cung cấp mà Ethers.js sử dụng.
Đây là mã mẫu cho cùng một điều:
const { ethers } = require('ethers');
// Kết nối bằng cách sử dụng Infura
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
// Kiểm tra số block hiện tại
provider.getBlockNumber().then((blockNumber) => {
console.log(“Số block hiện tại:”, blockNumber);
});
Ethers.js cho phép bạn quản lý ví, cho phép bạn tạo tài khoản mới, nhập tài khoản hiện có, quản lý an toàn các khóa riêng để ký giao dịch, và thực hiện nhiều chức năng khác.
Phần này của sự tồn tại của Ethers.js hỗ trợ việc khởi tạo đối tượng. Điều này giúp việc gọi các chức năng hợp đồng cụ thể dễ dàng hơn, giống như các phương thức Javascript nguyên bản hơn.
Ethers.js và tương tác hợp đồng thông minh: BeInCrypto
Ethers.js có thể giải quyết tên ENS thành địa chỉ Ethereum tương ứng và ngược lại. Tính năng này giảm thiểu rủi ro sai sót.
Dưới đây là một đoạn mã mẫu cho điều này:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
const ensName = ‘alice.eth’;
provider.resolveName(ensName).then((address) => {
console.log(`${ensName} được giải quyết thành ${address}`);
});
Bên cạnh các tính năng đã đề cập, Ethers.js cũng tự hào có các khía cạnh hoặc tính năng sau, giúp các nhà phát triển có quyền truy cập trực tiếp dành riêng cho Ethereum:
Một số lợi ích khi sử dụng Ethers.js:
Các ấn phẩm truyền thông như BeInCrypto có thể tận dụng Ethers.js để tạo ra các công cụ web3 tiên tiến và hữu ích từ đầu. Như vậy, trở thành có thể sử dụng các tính năng được hỗ trợ bởi Ethereum để tăng cường tính sử dụng. Dưới đây là các lựa chọn mà mọi người có thể xem xét:
Các tính năng của Ethers.js có thể được sử dụng để tích hợp dữ liệu tiền điện tử thời gian thực thực tế, như thống kê mạng, phí gas, và nhiều hơn nữa, để bài viết và tài nguyên luôn mới. Đây là một đoạn mã mẫu để truy xuất số block mới nhất, ví dụ cho Bitcoin, để theo dõi sự kiện halving trong thời gian thực.
const { ethers } = require('ethers');
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
provider.getBlockNumber().then((blockNumber) => {
console.log(“Số block hiện tại:”, blockNumber);// Tích hợp dữ liệu này vào nền tảng xuất bản của bạn để có nguồn cấp dữ liệu thời gian thực
});
Các bài viết có thể tạo ra các phần nội dung tương tác, cho phép người dùng tương tác trực tiếp với hợp đồng thông minh, tham gia bình chọn, hoặc thậm chí chơi những trò chơi nhỏ nếu cần thiết.
Đây là một đoạn mã mẫu để lấy một lời chào cụ thể từ một hợp đồng thông minh:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contractAddress = ‘0x…’;
const contractABI = [
“hàm getGreeting() xem trả về (chuỗi)”
];
const contract = new ethers.Contract(contractAddress, contractABI, provider);
hàm không đồng bộ hiển thịLời chào mừng() {
const greeting = await contract.getGreeting();document.getElementById('greeting').innerText = greeting;
}
Mở tài khoản trên KuCoin & nhận ngay thưởng đảm bảo lên đến 700 USDT.
Một ví dụ thực tế về cách Ethers.js được triển khai:
Các báo chí cũng có thể xem xét việc xuất bản phi tập trung, nơi một phần của bài viết được xuất bản trên mạng lưới blockchain. Điều này có thể giúp chống lại sự kiểm duyệt và thậm chí giữ nguyên tính chất của nội dung.
Đây là một đoạn mã mẫu nơi mà băm bài viết được lưu trữ trực tuyến như là bằng chứng của việc xuất bản:
const { ethers } = require('ethers');
const ví = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, provider);
const contentHash = ethers.utils.id(“Nội dung bài viết ở đây”);
const tx = await wallet.sendTransaction({
to: ‘0xSomeStorageContractAddress’,data: contentHash // Giả sử hợp đồng chấp nhận và lưu trữ dữ liệu này
});
console.log("Mã giao dịch (bằng chứng của việc xuất bản):", tx.hash);
Đây chỉ là một số trường hợp sử dụng cho các bản tin truyền thông. Nhưng cũng có các lĩnh vực khác có thể tận dụng sức mạnh của ethers.js. Các lĩnh vực này bao gồm:
Và hơn nữa.
Ngoài việc hữu ích trong DeFi, NFT và các dự án game, có một số ứng dụng phi tập trung (DApps) hiện có hỗ trợ việc sử dụng Ethers.js. Các ứng dụng này bao gồm:
Phá vỡ một số điều huyền thoại về Ethers.js:
Sử dụng Ethers.js đi kèm với một bộ sưu tập khá phong phú của bảo mậtnhững yếu tố cần xem xét. Dưới đây là một số điều cần tuân theo:
Đây là một ví dụ về cách nó hoạt động:
// Mã giả cho việc gộp cuộc gọi hợp đồng với Ethers.js (ví dụ khái niệm)
const contract = new ethers.Contract(address, abi, provider);
const [giá trị1, giá trị2, giá trị3] = await Promise.all([
contract.viewFunction1(), contract.viewFunction2(), contract.viewFunction3()
];
Được tài trợ
Như được thể hiện trong hướng dẫn này, Ethers.js là một công cụ linh hoạt. Trong khi chúng tôi đã xem qua khả năng của nó một cách nhanh chóng, cách tốt nhất để hiểu rõ hoàn toàn về Ethers.js là nghiên cứu sâu hơn vào thế giới của hợp đồng thông minh, JavaScript, IDEs, DApps và nhiều hơn nữa. Ngoài ra, tham gia cộng đồng Ethereum và Ethers cũng có thể hữu ích.
Làm thế nào các nhà phát triển có thể sử dụng các sự kiện Ethers.js?
Các tiện ích chính được cung cấp bởi Ethers.js là gì?
Liên kết giữa Ethers.js và Web3.js là gì?
株式
内容
Nếu bạn đang quan tâm đến Ether (ETH) hơn các đối thủ khác trong lĩnh vực tiền điện tử, bạn nên dành chút thời gian để hiểu về Ethereum từ một góc độ kỹ thuật hơn. Một giao thức blockchain nổi tiếng với bộ công cụ, hợp đồng thông minh và hệ sinh thái được điều chỉnh bằng mã nguồn, Ethereum phụ thuộc nhiều vào ethers.js - một thư viện Javascript - để mang lại sức mạnh cần thiết cho cách tiếp cận hướng tới các nhà phát triển.
Mặc dù ethers.js không phải là thư viện JavaScript native Ethereum duy nhất, nhưng đó là lựa chọn tốt hơn cho các ứng dụng phi tập trung nhỏ hơn. Trong hướng dẫn này, chúng tôi sẽ đi sâu vào các khía cạnh của ethers.js, giúp bạn hiểu rõ hơn về khái niệm kỹ thuật này.
Trong hướng dẫn này:
ethers.js là một thư viện JavaScript — một tập hợp mã đã được viết trước để tự động hóa một số chức năng. Sử dụng thư viện JavaScript cho việc phát triển có thể giảm thiểu nỗ lực viết mã. Quá trình trở nên thân thiện hơn với người dùng, và đối với các nhà phát triển DApp, những thư viện này giúp cung cấp các chức năng cụ thể cho blockchain cơ bản dưới dạng bản gói.
Ethers.js và chu kỳ phát triển: BeInCrypto
Đây là GitHubkho lưu trữcho thư viện.
Trước khi chúng ta đào sâu vào ethers.js, hãy xem xét kỹ hơn về các thư viện JavaScript. Các thư viện này là bộ mã JavaScript được viết sẵn có thể tự động hóa các công việc phổ biến cụ thể. Sử dụng các thư viện như ethers.js có thể tăng tốc quá trình tạo DApp và thậm chí tăng tốc các tương tác cụ thể trên blockchain khác.
Ethereum đã phát triển thành một nền tảng phát triển phần mềm phi tập trung.hợp đồng thông minhđểDeTừ ứng dụng tài chính đến DApps, việc lập trình là không thể thiếu trong hệ sinh thái Ethereum. Đó chính là lý do tại sao các thư viện JavaScript được tinh chỉnh cho Ethereum như ethers.js tồn tại. Sử dụng những thư viện này, các nhà phát triển có thể kết nối với mạng, triển khai và tương tác với các hợp đồng thông minh, và quản lý dễ dàng blockchaindữ liệu.
Bạn có biết không? Ethers.js không phải là thư viện Javascript Ethereum duy nhất được biết đến. Một thư viện đáng chú ý khác là Web3.js, được thành lập bởi Ethereum Foundation. Web3.js nổi tiếng với bộ tài liệu đầy đủ và được thiết kế cho các ứng dụng phi tập trung phức tạp hơn.
Như đã đề cập trước đó, ethers.js nhằm mục đích hướng tới các nhà phát triển tương tác với blockchain Ethereum. Về mức độ quan trọng, thư viện này được phát triển bởi Richard Moore, được tiếp thị dưới tên gọi "Ether," hữu ích cho các công việc sau:
Hệ sinh thái Ethers.js và các vai trò mà nó có thể đảm nhận: BeInCrypto
Đây là một ví dụ nhanh về đoạn mã được sử dụng để lấy số dư hiện tại của một tài khoản Ethereum. Hãy đọc mã trước và hiểu cách mà ethers.js giúp cuộc sống dễ dàng hơn:
const { ethers } = require('ethers');
// Kết nối với mạng Ethereum
const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);
// Chỉ định địa chỉ tài khoản
const accountAddress = ‘0xABC123…’;
// Fetch and display the balance
provider.getBalance(accountAddress).then((balance) => {
// Chuyển đổi số dư từ Wei sang Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Số dư: ${balanceInEther} ETH`);
});
Trong ví dụ này, bạn có thể thấy rõ cách lệnh - ethers.providers.JsonRpcProvider - gọi một điểm cuối Infura, và getBalance truy xuất số dư. Bạn không cần phải đối mặt trực tiếp với JSON RPC của Ethereum hoặc cuộc gọi thủ tục từ xa. Trong trường hợp này, bạn có thể nghĩ về ethers.js như một bộ phiên dịch giúp Ethereum trở nên dễ dàng và quen thuộc hơn với bạn.
Vẫn chưa chắc chắn về ý nghĩa của ethers.js? Đây là một ví dụ nhanh.
Hãy nghĩ về ethers.js như một thẻ thư viện cũ. Hãy nhớ rằng những thẻ đó có danh mục, cho phép bạn tìm cuốn sách đúng bằng cách xác định dãy và sau đó là số giá. Đó là mục tiêu mà ethers.js hướng đến. Nó giúp đơn giản hóa và tổ chức các khả năng rộng lớn của Ethereum, giúp cho các nhà phát triển tìm chính xác những gì họ cần.
Trong những năm qua, đã xuất hiện một số phiên bản Ethers.js, mỗi phiên bản giới thiệu một tính năng mới hoặc một sửa lỗi. Ngoài ra, việc đánh số phiên bản tuân theo cú pháp chuẩn, như v1.2.3, trong đó số đầu tiên biểu thị phiên bản chính và số thứ hai và ba biểu thị phiên bản phụ và sửa lỗi. Chúng ta chỉ xem xét việc nâng cấp phiên bản chính cho đến nay - những thay đổi có thể không tương thích ngược.
Kiến trúc và các thành phần của Ethers.js: BeInCrypto
Bạn có thể tìm thêm chi tiết về mỗi phiên bản bằng cách xem Ethers.js’tài liệu gốc.
“Ethers.js tỏa sáng với khả năng tương tác blockchain vượt trội, hỗ trợ TypeScript nguyên bản và các công cụ debug tiên tiến. Đó là một thư viện nhẹ nhàng mà tích hợp một cách mượt mà vào các framework phổ biến như React, Vue, Angular v.v.”
Redbelly Intern, Builder: X
Trước khi bạn dự định tận dụng tiềm năng của ethers.js, cần phải biết ở giai đoạn nào của việc phát triển DApp hoặc hợp đồng thông minh nó được gọi. Đây là một phân tách nhanh chóng cho những người cần biết và hiểu rõ những yếu tố này từ đầu.
“Web3.js là dễ sử dụng cho người mới bắt đầu và ngắn gọn hơn ethers.js.
Ethers.js, on the other hand, gives more options and is new; it is a little bit more complex than Web3.js.”
degenBRo, nhà phát triển blockchain và người sáng lập của Solidity Finance: Đã nói với BeInCrypto
Để bắt đầu, bạn cần mở máy tính và thiết lập môi trường phát triển. Điều này bao gồm Node.js và Môi trường Phát triển Tích Hợp. Lưu ý rằng JavaScript thường chạy trên trình duyệt, nhưng với Node.js, cùng một code có thể chạy trên máy tính. Đó là môi trường thực thi Node.js cài đặt thư viện Javascript như ethers.js.
Về IDE, mà một nhà phát triển phần mềm cần để thử nghiệm, bạn có thể xem xét VS Code, Sublime Text, hoặc bất cứ thứ gì khác.
Bước tiếp theo là cài đặt Ethers, thư viện chứa ethers.js.
npm cài đặt ethers
Sau đó, bạn cần sử dụng Ether để kết nối với Ví Ethereum, vì việc tương tác với blockchain sẽ yêu cầu bước này để xác thực thông tin. Bạn có thể sử dụng thư viện Ethers đã cài đặt cho việc này. Đây là lệnh mẫu:
14 phút Mar 15, 2024 3 ngày trước
25 phút Mar 15, 2024 2 ngày trước
const { ethers } = require(‘ethers’);
// Kết nối với MetaMaskví
const provider = new ethers.providers.Web3Provider(window.ethereum);
Sau khi hoàn thành, bạn có thể sử dụng IDE để viết mã solidity và tạo hợp đồng thông minh cho DApps. Ethers.js sẽ được sử dụng để triển khai mã. Bạn cũng có thể kiểm tra DApp hoặc hợp đồng một cách địa phương, sử dụng môi trường như Trufflevà Hardhat. Sau đó, bạn triển khai các hợp đồng lên mạng lưới Ethereum, cho đó cần ethers.js.
const contract = new ethers.ContractFactory(abi, bytecode, signer);
const deployedContract = chờ contract.deploy();
Đối với những người không rành về, Bytecode, Signer là những thuật ngữ cần thiết cho việc phát triển hợp đồng thông minh mượt mà. Abi hoặc giao diện nhị phân ứng dụng cũng giống như nhãn giúp mạng nhận dạng hợp đồng thông minh của bạn. Bytecode là phiên bản đã biên dịch hoặc chuẩn bị sẵn sàng cho mạng của hợp đồng thông minh và người ký là thực thể tạo chữ ký.
Khi hợp đồng thông minh được triển khai, bạn cần xây dựng giao diện người dùng hoặc giao diện người dùng của DApp. Đối với điều này, bạn có thể sử dụng Angular hoặc React. Bạn thậm chí có thể tích hợp Ethers.js vào phía trước để đảm bảo rằng nó có thể tương tác với hợp đồng thông minh Ethereum. Đây là mã mẫu cho việc đó:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contract = new ethers.Contract(contractAddress, contractABI, provider.getSigner());
Sau đó, bạn cần thử nghiệm DApp trên mạng thử nghiệm, ví dụ như Rinkeby hoặc Ropsten. Khi bạn hài lòng, bạn có thể triển khai DApp trên mainnet. Chú ý xem có bao nhiêu lần trong quá trình bạn cần tương tác với Ether hoặc ethers.js.
Ethers.js được coi là một thư viện Ethereum toàn diện. Dưới đây là một số ưu đãi độc quyền có thể giúp cuộc sống của các nhà phát triển trở nên dễ dàng:
Các nhà cung cấp Ethers.js hoạt động như cầu nối giữa mạng lưới Ethereum và ứng dụng phi tập trung (DApp) mà bạn đang làm việc. Điều này bao gồm việc đơn giản hóa việc truy vấn dữ liệu blockchain và cũng giúp phát sóng giao dịch. Infura là một trong những nhà cung cấp mà Ethers.js sử dụng.
Đây là mã mẫu cho cùng một điều:
const { ethers } = require('ethers');
// Kết nối bằng cách sử dụng Infura
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
// Kiểm tra số block hiện tại
provider.getBlockNumber().then((blockNumber) => {
console.log(“Số block hiện tại:”, blockNumber);
});
Ethers.js cho phép bạn quản lý ví, cho phép bạn tạo tài khoản mới, nhập tài khoản hiện có, quản lý an toàn các khóa riêng để ký giao dịch, và thực hiện nhiều chức năng khác.
Phần này của sự tồn tại của Ethers.js hỗ trợ việc khởi tạo đối tượng. Điều này giúp việc gọi các chức năng hợp đồng cụ thể dễ dàng hơn, giống như các phương thức Javascript nguyên bản hơn.
Ethers.js và tương tác hợp đồng thông minh: BeInCrypto
Ethers.js có thể giải quyết tên ENS thành địa chỉ Ethereum tương ứng và ngược lại. Tính năng này giảm thiểu rủi ro sai sót.
Dưới đây là một đoạn mã mẫu cho điều này:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
const ensName = ‘alice.eth’;
provider.resolveName(ensName).then((address) => {
console.log(`${ensName} được giải quyết thành ${address}`);
});
Bên cạnh các tính năng đã đề cập, Ethers.js cũng tự hào có các khía cạnh hoặc tính năng sau, giúp các nhà phát triển có quyền truy cập trực tiếp dành riêng cho Ethereum:
Một số lợi ích khi sử dụng Ethers.js:
Các ấn phẩm truyền thông như BeInCrypto có thể tận dụng Ethers.js để tạo ra các công cụ web3 tiên tiến và hữu ích từ đầu. Như vậy, trở thành có thể sử dụng các tính năng được hỗ trợ bởi Ethereum để tăng cường tính sử dụng. Dưới đây là các lựa chọn mà mọi người có thể xem xét:
Các tính năng của Ethers.js có thể được sử dụng để tích hợp dữ liệu tiền điện tử thời gian thực thực tế, như thống kê mạng, phí gas, và nhiều hơn nữa, để bài viết và tài nguyên luôn mới. Đây là một đoạn mã mẫu để truy xuất số block mới nhất, ví dụ cho Bitcoin, để theo dõi sự kiện halving trong thời gian thực.
const { ethers } = require('ethers');
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
provider.getBlockNumber().then((blockNumber) => {
console.log(“Số block hiện tại:”, blockNumber);// Tích hợp dữ liệu này vào nền tảng xuất bản của bạn để có nguồn cấp dữ liệu thời gian thực
});
Các bài viết có thể tạo ra các phần nội dung tương tác, cho phép người dùng tương tác trực tiếp với hợp đồng thông minh, tham gia bình chọn, hoặc thậm chí chơi những trò chơi nhỏ nếu cần thiết.
Đây là một đoạn mã mẫu để lấy một lời chào cụ thể từ một hợp đồng thông minh:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contractAddress = ‘0x…’;
const contractABI = [
“hàm getGreeting() xem trả về (chuỗi)”
];
const contract = new ethers.Contract(contractAddress, contractABI, provider);
hàm không đồng bộ hiển thịLời chào mừng() {
const greeting = await contract.getGreeting();document.getElementById('greeting').innerText = greeting;
}
Mở tài khoản trên KuCoin & nhận ngay thưởng đảm bảo lên đến 700 USDT.
Một ví dụ thực tế về cách Ethers.js được triển khai:
Các báo chí cũng có thể xem xét việc xuất bản phi tập trung, nơi một phần của bài viết được xuất bản trên mạng lưới blockchain. Điều này có thể giúp chống lại sự kiểm duyệt và thậm chí giữ nguyên tính chất của nội dung.
Đây là một đoạn mã mẫu nơi mà băm bài viết được lưu trữ trực tuyến như là bằng chứng của việc xuất bản:
const { ethers } = require('ethers');
const ví = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, provider);
const contentHash = ethers.utils.id(“Nội dung bài viết ở đây”);
const tx = await wallet.sendTransaction({
to: ‘0xSomeStorageContractAddress’,data: contentHash // Giả sử hợp đồng chấp nhận và lưu trữ dữ liệu này
});
console.log("Mã giao dịch (bằng chứng của việc xuất bản):", tx.hash);
Đây chỉ là một số trường hợp sử dụng cho các bản tin truyền thông. Nhưng cũng có các lĩnh vực khác có thể tận dụng sức mạnh của ethers.js. Các lĩnh vực này bao gồm:
Và hơn nữa.
Ngoài việc hữu ích trong DeFi, NFT và các dự án game, có một số ứng dụng phi tập trung (DApps) hiện có hỗ trợ việc sử dụng Ethers.js. Các ứng dụng này bao gồm:
Phá vỡ một số điều huyền thoại về Ethers.js:
Sử dụng Ethers.js đi kèm với một bộ sưu tập khá phong phú của bảo mậtnhững yếu tố cần xem xét. Dưới đây là một số điều cần tuân theo:
Đây là một ví dụ về cách nó hoạt động:
// Mã giả cho việc gộp cuộc gọi hợp đồng với Ethers.js (ví dụ khái niệm)
const contract = new ethers.Contract(address, abi, provider);
const [giá trị1, giá trị2, giá trị3] = await Promise.all([
contract.viewFunction1(), contract.viewFunction2(), contract.viewFunction3()
];
Được tài trợ
Như được thể hiện trong hướng dẫn này, Ethers.js là một công cụ linh hoạt. Trong khi chúng tôi đã xem qua khả năng của nó một cách nhanh chóng, cách tốt nhất để hiểu rõ hoàn toàn về Ethers.js là nghiên cứu sâu hơn vào thế giới của hợp đồng thông minh, JavaScript, IDEs, DApps và nhiều hơn nữa. Ngoài ra, tham gia cộng đồng Ethereum và Ethers cũng có thể hữu ích.
Làm thế nào các nhà phát triển có thể sử dụng các sự kiện Ethers.js?
Các tiện ích chính được cung cấp bởi Ethers.js là gì?
Liên kết giữa Ethers.js và Web3.js là gì?