1703879066
区块链项目开发指南 8.4.2 初始化truffle
1703879067
1703879068
首先需要为应用创建目录。把目录命名为altcoin。在altcoin目录中,运行如下命令,初始化项目:
1703879069
1703879070
1703879071
1703879072
1703879073
初始化结束后,会得到一个包含如下项目的项目结构:
1703879074
1703879075
·contracts。truffle将发现Solidity合约的目录。
1703879076
1703879077
·migrations。包含合约部署代码的文件所在的目录。
1703879078
1703879079
·test。用于检测智能合约的测试文件的位置。
1703879080
1703879081
·truffle.js。主要truffle配置文件。
1703879082
1703879083
truffle init默认提供一系列样本合约(MetaCoin和ConvertLib)——相当于在以太坊之上的简单altcoin。
1703879084
1703879085
MetaCoin(元币)智能合约的源代码如下(供参考):
1703879086
1703879087
1703879088
1703879089
1703879090
MetaCoin向部署合约的账户地址分派10000个元币。10000是存在的全部比特币总数。现在该用户可以用sendCoin()函数发送元币给任何人,可以随时用getBalance()查询账户余额。假设一个元币折合两个以太币,就可以用getBalanceInEth()得到以太币余额。
1703879091
1703879092
ConvertLib库用于计算以太币中元币的数值。为了实现此目的,该库提供了convert()方法。
1703879093
1703879094
1703879095
1703879096
1703879098
区块链项目开发指南 8.4.3 编译合约
1703879099
1703879100
在truffle中编译合约将产生带有abi和unlinked_binary属性的artifact对象。运行如下命令进行编译:
1703879101
1703879102
1703879103
1703879104
1703879105
为了避免不必要的编译工作,truffle只编译上次编译之后有变化的合约。如果想重写这个行为,用—all选项运行前面的命令。
1703879106
1703879107
用户会在build/contracts目录中发现artifacts。可以根据需要任意编辑这些文件。在运行compile和migrate命令时,这些文件就被修改了。
1703879108
1703879109
在编译前,需要注意如下事项:
1703879110
1703879111
·truffle期望合约文件定义与其文件名完全匹配的合约。例如,如果有一个文件叫作MyContract.sol,那么合约文件须有合约MyContract{}或者library myContract{}。
1703879112
1703879113
·文件名匹配区分大小写,即大小写要一致。这意味着如果文件名没有大写,那么合约名也不应该大写。
1703879114
[
上一页 ]
[ :1.703879065e+09 ]
[
下一页 ]