如何理解智能合约

智能合约是一种可以运行在区块链上的代码。

它是以太坊上一种特殊的账户,即智能合约账户;另外还有用户账户。

智能合约账户与用户账户的区别:

用户账户:

1、地址:即钱包地址

2、余额:金额,指以太币(针对以太坊)

智能合约账户:

1、地址:存放以太币余额,同时也是智能合约的唯一标识;创建后生成的。PS:智能合约创建,是以太坊交易的其中之一;

2、余额

3、状态:智能合约中变量的状态,这个可以更改(通过针对智能合约的函数调用)

4、代码:智能合约的字节码,这个在区块链中是不可改变的。

如何调用智能合约

1、转换要调用的函数为hex,一个hash地址,取前几位作为标识;

2、将这个hex作为data放入交易data中

3、交易的to设置为智能合约地址;from为当前调用者。

4、利用私钥将本次的交易数据进行签名;

5、将本笔交易transaction发送到以太坊网络等待记录。

{ 
from: 调用者的地址
to: '0x1111....’, //合约地址
value: 0.0 
data:0x1111106……………000011111’ 函数标识和参数信息
}

智能合约账户的地址

1、针对NFT,如果mint,默认会将金额转到NFT所在的智能合约地址;?

2、针对代币,默认会将购买的以太币转入到代币所在的智能合约地址;?