智能合约是以太坊的精髓,也是比特币和以太坊最大的区别。智能合约是运行在区块链上的一段代码,代码的逻辑定义了合约的内容。智能合约的账户保存了合约当前的运行状态.
合约如何调用另一个合约的函数:
1.直接调用
错误处理:如果调用的合约在执行过程中出现错误,会导致发起调用的合约也会一起回滚
2.使用address类型的call()函数
错误处理:如果被调用的合约在执行中出现异常,call函数会返回false,发起调用的函数还是能够继续执行。
3.代理调用
智能合约
外部账户发起一个转账交易到0x0的地址,转账的jine为0,但是需要支付gas费,同时编写的智能合约代码放入data域,运行在EVM上。
gas费
为了防止智能合约中出现死循环、恶意节点攻击等,运行代码需要消耗gas费,全节点收到合约调用的时候,会在运行之前会扣除预计的最大gas费,