...高智能合约的安全性。 ## 典型授权模式 以下是[EIP-20](https://eips.ethereum.org/EIPS/eip-20)中定义的典型代币授权(Approve)方法图示:  1. Alice在一个ERC20上调用`a...
...idity // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * eip712 三要素:TYPEHASH、DOMAIN_SEPERATOR、digest */ contract PermitDemo { bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address holder,address spender,bool allowed)"); bytes32 private PERMIT_...
...块,通过不同的模块对多签钱包的行为进行限制。 ### EIP712: $$ hashStruct(S)=keccak256(abi.encode(typeHash,encodeData(S)))\\ typeHash=keccak256(encodeType(typeOf(S))) $$ EIP712中定义的结构体: ```js EIP712Domain(uint256 chainId,address verifyingContract) S...
...实。 在这篇文章中,我们将演示 dapp 开发者如何使用 EIP-7730 帮助保护他们的用户免受盲签问题的影响,EIP-7730 使硬件钱包能够解码交易,并允许用户了解他们真正签署的内容。 我们认为,支持 EIP-7730 的 dapp 将比其竞争对...
...A%A6ABI%E6%8B%93%E5%B1%95) - **chainId**:防止跨链重放攻击。 ->EIP155 2. **签署交易** 签署交易可使用**MetaMask**和**ethers库。** - **MetaMask** 前端:使用**MetaMask**进行签名为前端技术栈,目前比较流行为nextjs+ethers,我对前端不太了...
## 概述 本文在[上一篇文章]({{}})介绍的`EIP712`的基础上进一步讨论了`EIP712`结构化哈希的进一步应用: 1. Meta-transactions,解决用户`gas`费用问题 2. ERC20-Permit ## Meta-transactions `meta-transactions`指在交易中包含另一个实际交易。具体流...
...#### `name() → string` external governor 实例的名称(用于构建 EIP-712 域分隔符)。 ##### `version() → string` external governor 实例的版本(用于构建 EIP-712 域分隔符)。默认值:"1" ##### `COUNTING_MODE() → string` external [`castVote`](https://docs.open...
...正文 目前常见的空投签名方式主要有 **Merkle List** 和 **EIP712** 两种。下面我会对它们的机制和区别做个分析。 ### Merkle List 使用 Merkle List 要先构建一棵默克尔树: 1. 构建者先准备好空投地址和数量。 2. 对每个 `(地址, ...
...优化,特别适用于 DeFi 和钱包应用场景。 ## 二、ERC-712(EIP-712)—用于结构化数据的签名标准 **1. 什么是ERC-712** ERC-712提供了一种对结构化数据进行离线签名的标准。它通过定义签名的格式和数据结构,确保签名的安全性和可...
...以确保在硬件故障时可以恢复。 - **硬件钱包至少应支持EIP-712数据的明签名**。只允许盲签名的设备应立即更换。有关最佳设备使用的参考,请参见[Patrick Collins的硬件钱包指南](https://learnblockchain.cn/article/13850) [²](#43ab)。 - 所有...
...EOA账户无eth也可完成授权操作。 具体细则参见:https://eips.ethereum.org/EIPS/eip-2612 ### 1. 目标合约 继承ERC20Permit合约: Github: https://github.com/RevelationOfTuring/foundry-openzeppelin-contracts/blob/master/src/token/ERC20/extensions/MockERC20Permit.sol ...
...。 上述例子的典型是ERC20-Permit,标准化为[ERC2612](https://eips.ethereum.org/EIPS/eip-2612)。标准ERC20面临的一个尴尬问题是,它需要经过两步过程才能允许智能合约使用用户资金。首先,我们需要创建一个`approve()`交易。我们需要等待交...
...技术成为主流,我们还有很长的路要走。 ## 快进至EIP-2612 从那时起,DAI和Uniswap一直在朝着名为[EIP-2612](https://eips.ethereum.org/EIPS/eip-2612)的新标准的方向发展,该标准可以取消 approve + transferFrom,同时还允许无 gas 通证转账...
...lidity contract AToken is VersionedInitializable, ScaledBalanceTokenBase, EIP712Base, IAToken ``` AToken继承了VersionedInitializable、ScaledBalanceTokenBase、EIP712Base和IAToken,下面我们分别来看下他们的实现 # 2 源码解读 ## 2.1 VersionedInitializable ```solidity // ...