provider, signer, contract.
智能合约:运行于eth网络上的代码(功能)和数据(状态)的集合。
账户,地址及状态的映射,状态有四个字段: nonce: 从账户发送的交易数量的计数器. balance: wei数量。 codeHash(对应EVM代码的hash) ,storage hash. EOA, contract account.
状态:所有地址及账户的状态, 状态的切换由transaction打包的交易触发。
transaction: 单签名的指令.两种: contract creation 和 message call.
PC, stack, memory, storage
区别在于key管理与blockchain的交互。web3假设有一个local node(负责管理key, 签署transaction, 与eth blockchain交互), 现实中大部分用户不会运行geth这样的节点。由metamask仿真一个这样的环境.
Etherer.js把node 分成: wallet:管理key和签署transactions; provider:当作eth网络的匿名连接,检查状态和发送交易.
contract object: 方法,编码及解码数据(ABI的功能), meta-class: 方法在运行时构建. ABI来自Solidity编译器.
logs,Filtering: provider events api, contract events api, contract events api 也提供higher-level methods.
filter: 最多支持4 topic-sets.(同时4个条件)
solidity topics:
类型address, public, (public关键字会创建getterfunction),
address, uint, mapping, event
msg, tx, block 是特殊的全局变量. msg.sender:当前调用 函数的address.
mapping