Blockchain

使用 DApp 部署智能合約

  • January 27, 2022

我是乙太坊區塊鏈上 DApp 開發的新手。我想製作一個契約管理系統,使用者可以在其中使用我的 Web 應用程序生成自己的代幣和眾籌。我能夠與已經部署的契約進行互動,但我不知道

  1. 有人如何使用我的 DApp 部署他們的眾籌。
  2. 我不知道如何使用我的應用程序連接 Metamask 和使用者帳戶,最後
  3. 如何在伺服器和域上部署該 Web 應用程序。

任何幫助將不勝感激。謝謝

  1. 某人如何使用我的 DApp 部署他們的眾籌。

您可以使用 Web3.js 或 truffle 從 WebUI 部署契約。

我不知道如何使用我的應用程序連接 Metamask 和使用者帳戶

您可以使用以下程式碼將元遮罩與您的 Web 應用程序集成。

$(function () {  // equivalent to $(document).ready(...)
if (typeof(web3) === "undefined") {
error("Unable to find web3. " +
     "Please run MetaMask (or something else that injects web3).");
} else {
log("Found injected web3.");
web3 = new Web3(window.web3.currentProvider);
...
}   
});
  1. 如何在伺服器和域上部署該 Web 應用程序。

使用 AWS 服務託管使用者網站,使用 Route 53 將域名與 EC2 實例進行映射。

首先,您需要編寫和編譯代幣和眾籌智能合約。這將為您提供 abi 和字節碼。

然後你可以使用 Web3 API 從你的 DApp 部署合約。這分兩步完成:

  1. 像這樣構造合約對象:var myContract = new web3js.eth.Contract (abi). 對於這一步,您需要將智能合約的 ABI 打包到由 Solidity 編譯器生成的 JSON 中。
  2. 像這樣公開部署合約交易:await myContract.deploy ({data: bytecode, arguments: [parameters]}).send ({from: account, gas: 1000000}). 對於這一步,您需要 Solidity 編譯器生成的合約字節碼、建構子參數(您可以在此處傳遞名稱、符號、小數等)以及發布部署交易的帳戶。

Metamask FAQ中介紹瞭如何使用 DApp 中的 Metamask 帳戶。這將為web3js您提供可以使用的對象。使用者帳戶可用作web3js.eth.accounts. 請注意,使用者可能需要明確允許您的 DApp 訪問他的帳戶。

關於部署,您可以在GitHub Pages上託管您的 DApp作為快速入門,然後購買域,例如在Google Domains或任何其他域註冊服務上。

引用自:https://ethereum.stackexchange.com/questions/36698