1

我正在开发一个可靠的智能合约,我正在通过一个 python 代码部署它,我通过命令行运行 brownie。此外,我正在开发一个带有打字稿的前端 dApp 来进行交互并部署这些合约。使用 useDApp 可以让我与已经部署的合约进行交互,但我仍然没有弄清楚如何通过前端部署这些合约。

简而言之,“deploy.py”代码有一个部署solidity代码的函数,它将一些变量传递给合约的构造函数。它工作正常。

在应用程序(打字稿)的前端,我有一个用户可以填写的表单,然后当他们单击“发送”按钮时,这些字段会变成变量。我现在需要的只是将这些变量传递给“deploy.py”文件,这样它就可以将它们转换为solidity 构造函数,当然,还可以通过brownie 部署合约。


更新:

发现更简单的方法是忘记 python 部分并直接使用 ethers.js ContractFactory 部署合约。直到现在才解决它,但在我的路上。

4

1 回答 1

0

让前端与 python 后端对话的唯一方法是使用 Flask 创建一个 restful api。因此,当您提交表单时,您将向 python 服务器发送一个 post 请求,python flask 将提取已发布的数据request.json

from flask import Flask
from flask import request

app = Flask(__name__)
# allow only post request here
@app.route('/deploy_contract_route', methods = ['POST'])
def deploy_contract():
   content_type = request.headers.get('Content-Type')
   if (content_type == 'application/json'):
        json = request.json
        # json includes the post data. now you past this to deploy request. you get individual fields data
        deploy_contract_script(pass_args_here):
            # what ever deploying logic runs here
            
            return value_to_front_end
   else:
      return 'Content-Type not supported!'
于 2022-01-19T22:26:14.360 回答