打字猴:1.703879065e+09
1703879065 区块链项目开发指南 [:1703875394]
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
1703879097 区块链项目开发指南 [:1703875395]
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 ]  [ 下一页 ]