建设和部署

建设和部署¶
使用deploy方法构建和部署智能合约:

YourSmartContract contract = YourSmartContract.deploy(
        <web3j>, <credentials>, GAS_PRICE, GAS_LIMIT,
        [<initialValue>,]
        <param1>, ..., <paramN>).send();

这将使用提供的凭证和构造函数参数值在以太坊区块链上创建智能合约的新实例。

参数仅在您的智能合约在构建时接受 Ether 时才需要。这需要在合同中出现Solidity应付修改器。

它返回一个新的智能合约包装实例,其中包含智能合约的底层地址。如果您希望使用现有智能合约构建智能合约包装器的实例,只需传入它的地址:

YourSmartContract contract = YourSmartContract.load(
        "0x<address>|<ensName>", web3j, credentials, GAS_PRICE, GAS_LIMIT);

部署智能合约并与之交互¶
如果您想避免使用智能合约的底层实现细节,Web3j 提供了 Solidity智能合约包装器,使您能够通过生成的包装器对象直接与智能合约的所有方法进行交互。

或者,如果您希望发送常规交易或更好地控制您与智能合约的交互,请参阅Solidity 智能合约包装器、与智能合约进行交易和查询智能合约状态以了解详细信息。

Solidity 智能合约包装器¶
Web3j 支持从 Solidity ABI 文件自动生成 Java 中的智能合约函数包装器。

Web3j命令行工具工具附带一个命令行实用程序,用于生成智能合约函数包装器:

$ web3j generate solidity [-hV] [-jt] [-st] -a=<abiFile> [-b=<binFile>] -o=<destinationFileDir> -p=<packageName>

   -h, --help                        Show this help message and exit.
   -V, --version                     Print version information and exit.
   -jt, --javaTypes                  use native java types. Default: true
   -st, --solidityTypes              use solidity types.
   -a, --abiFile=<abiFile>           abi file with contract definition.
   -b, --binFile=<binFile>           optional bin file with contract compiled code in order to generate deploy methods.
   -o, --outputDir=<destinationFileDir> destination base directory.
   -p, --package=<packageName>       base package name.

是合同有效性所必需的

在 Web3j 3.x 之前的版本中,生成的智能合约包装器使用原生 Solidity 类型。从 Web3j 3.x 开始,Java 类型是默认创建的。您可以使用–solidityTypes命令行参数创建 Solidity 类型。

从 Web3j 版本 4.6.x 开始,生成器支持 ABIv2 用于使用 Solidity 编译器版本 0.6.x 编译的合约。这意味着您可以在智能合约中将结构作为输入/输出/事件参数。

您还可以通过直接调用 Java 类来生成包装器:

org.web3j.codegen.SolidityFunctionWrapperGenerator -b /path/to/<smart-contract>.bin -a /path/to/<smart-contract>.abi -o /path/to/src/main/java -p com.your.organisation.name

根据编译 Solidity 源代码获得bin和abi的位置

使用的本机 Java 到 Solidity 类型转换在应用程序二进制接口部分中有详细说明。

智能合约包装器支持使用智能合约的所有常见操作:

建设和部署
调用事务和事件
调用常量方法
合同有效期
任何需要进行底层 JSON-RPC 调用的方法调用都将返回 Future 以避免阻塞。

Web3j 还支持通过命令行工具实用程序直接从Truffle 的 Contract Schema生成 Java 智能合约函数包装器。

$ web3j generate truffle [--javaTypes|--solidityTypes] /path/to/<truffle-smart-contract-output>.json -o /path/to/src/main/java -p com.your.organisation.name

这也可以通过调用 Java 类来调用:

org.web3j.codegen.TruffleJsonFunctionWrapperGenerator /path/to/<truffle-smart-contract-output>.json -o /path/to/src/main/java -p com.your.organisation.name

以这种方式生成的包装器被“增强”以公开合约的每个网络部署的地址。这些地址来自生成包装器时的松露部署。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值