4

使用 编译 Solidity 文件后solc,如何将输出字节码作为智能合约部署到 RSK?我已经知道如何使用 Truffle 来做到这一点,但是有哪些替代方案可用于此任务?

4

2 回答 2

4

RSK(大部分)与以太坊兼容。特别是对于开发工具,它具有 JSON-RPC 兼容性和 VM 兼容性。所以如果你是以太坊开发者,你可以使用你熟悉的工具/库。这里有几种方法,除了 Truffle:

如果您想手动执行此操作,您可以使用终端curl 通过 JSON-RPC 发送事务来执行此操作,如下所示:

curl \
  -X POST \
  -H "Content-Type:application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{"from":"FROM_ADDRESS","to":"0x00","gasPrice":"0x3938700","gas":"0x67C28", "data":"SIGNED_CONTRACT_DEPLOYMENT_BYTECODE"}],"id":1}' \
  http://localhost:4444
  • 使用eth_estimateGasRPC 获取 的值gas
  • 使用eth_gasPriceRPC 获取 的值gasPrice

请注意,上述命令假设您在localhost.

另请注意,就像任何其他修改区块链状态的交易一样,您也需要签署部署交易,以便生成SIGNED_CONTRACT_DEPLOYMENT_BYTECODE. 您可以eth_sign为此使用 RPC,或钱包中的等效方法。

于 2021-04-27T08:19:03.817 回答
1

是的,很高兴知道在这些情况下会发生什么。简短回答:您发送交易,到字段为空,数据字段包含已编译合约的字节码与构造函数的 ABI 编码参数连接(如果有)

通常,我编写自己的实用程序(在 NodeJS 中,作为跨平台),以与 Ethereum/RSK 节点进行交互。您可以在我的个人项目https://github.com/ajlopez/rskapi中探索client.deploy的实现代码

此外,您可以检查我的命令行工具的实现(基于上述库)https://github.com/ajlopez/rskclitools#deploy-a-contract

https://github.com/ajlopez/EthFaucet/tree/master/commands中的代码示例(请参阅执行设置)

我将添加直接提供字节码来部署命令的功能,几天后,我将写一篇有条理的描述的帖子

于 2021-04-29T09:31:54.200 回答