通过 Angular 前端部署 Solidity 智能合约

Deploying Solidity Smart Contract via Angular Frontend

我们已经创建了一个Admin来访问所有的Contract Methods,但是现在我们还需要Admin针对不同的业务场景进行一键部署。我们需要在我们的管理员中重新混合 Ide 种界面,管理员用户可以在其中粘贴他们的智能合约,并可以使用 Metamask 通过前端本身进行部署。有什么办法可以实现吗?

我知道编译和字节码生成也需要后端,这不是问题,但它应该可以在不要求私钥的情况下工作。来自部署者。

它应该像这样工作:

  1. 登录管理门户。
  2. 转到添加合同并粘贴合同。
  3. 来自后端的一些 validations/compilation。
  4. 点击部署后,它应该要求 Metamask 进行部署,而不是使用私钥从后端部署。

您也可以使用 solc NPM 包在前端编译合约。

请注意,GitHub 存储库称为 solc-js,但 NPM 包只是 solc。还有另一个名为 solc-js 的 NPM 包似乎已被废弃。


合约部署只不过是发送带有特定参数的交易。具体来说,省略to字段,data字段为编译后的字节码。

您可以request MetaMask 签署交易:

const params: [{
    from: '0x<userAddress>',
    data: '0x<contractBytecode>',
}];

const txHash = await ethereum.request({
    method: 'eth_sendTransaction',
    params,
})

要获取他们的地址,您需要他们先 connect MetaMask 到您的应用程序。