合约交互 原文地址
合约交互的操作可以定义为两类:
read和write
在合约中 read 操作被称作 call ,write 操作被称为 transaction
call操作不会花费coin(钱,这里被称为‘gas’),写操作会花费gas
总结transaction的特点就是:
- 花费gas
- 改变网络状态
- 不会立刻处理完成
- 但是会返回一个transaction的ID
call的特点:
- 免费(不会消耗gas)
- 不会改变网络状态
- 会立刻处理完成
- 会暴露一个返回值
call 操作实例:
决定使用call还是transaction依据你是要读还是写数据
truffle封装了call和transaction的操作,使得程序易于编写和执行
由于区块链的特殊性,使得call和transaction的操作并不像普通的app中的操作那么简单,由于设计到花钱的操作,
所以执行合约的函数之前需要特别慎重,所以合约的读操作有特殊的写法:
var account_one = "0x1234..."; // an address