什么是智能合约?
- 智能合约是运行在区块链上的一段代码,代码的逻辑定义了合约的内容。
- 智能合约的账户保存了合约当前的运行状态
balance:当前余额
nonce:交易次数
code:合约代码
storage:存储,数据结构是一颗MPT树 - Solidity是智能合约最常用的语言,语法上与JavaScript很接近
- example
【payable】
以太坊规定如果合约账户要能接受外部转账,必须标注payable。
调用智能合约
如何调用智能合约
创建一个交易,接收地址为要调用的呢个智能合约的地址,data域填写要调用的函数及其参数的编码值。
一个合约调用另一个合约中的函数
- 直接调用
以太坊中规定一个交易只能由外部账户发起,合约账户不能主动发起。 - 使用address类型的call()函数