Eip Index1
- 1 min签名
712
签名数据结构化
bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(
keccak256("Mail(address to,string contents)"),
mailTo,
keccak256(bytes(mailContents))
)));
address signer = ECDSA.recover(digest, signature);
2612
增加了permit函数, 用于离线签名
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external
function nonces(address owner) external view returns (uint)
function DOMAIN_SEPARATOR() external view returns (bytes32)
多签
1271
增加了合约上的标准签名验证函数
bytes4 constant internal MAGICVALUE = 0x1626ba7e;
function isValidSignature(
bytes32 _hash,
bytes memory _signature)
returns (bytes4 magicValue);
账户抽象
- 4337: 账户抽象, bundler & paymaster
- 3074: 增加了 opcode: auth & authcall
以太坊客户端方面的升级
1559
增加了base Fee Per Gas, max priority fee per gas, 伦敦升级
4844
增加了Blob交易类型, 坎昆升级
3074: 账户抽象
最初的实验:
https://github.com/Mrtenz/transaction-invoker
最新的实现:
https://github.com/ben46/3074-invokers
增加了auth & authcall, 布拉格升级
7702
让EOA钱包可以充当智能合约钱包的角色, 执行以前只有智能合约才能做的复杂操作, 允许在单笔交易中动态引入智能合约代码
7623
增加以太坊的calldata成本, 目的是减少区块大小, 不太明白
7594
DAS采样相关
合约升级
1967 合约升级插槽标准化
1822 UUPS
1538 Transparent
2535 钻石
DeFi
- 4626: 代币化金库
NFT
- 1155: 让nft可以分拆成不同数量的balance, 一个nft id下面存储不同用户在这个id下面的balance
- 3525: 增加了slot, 让nft id之间可以转换, https://github.com/ben46/erc-3525/blob/main/3525.md
- 6551: EIP-6551 允许每个 NFT 作为一个独立的智能合约账户存在。这意味着每个 NFT 不仅仅是一个数字资产,还可以拥有自己的状态和行为。使得 NFT 具备可编程性,开发者可以为 NFT 创建复杂的交互和功能,例如自动化的收益分配、动态属性更新等。