使用 OpenZeppelin 和 Ethers.js 在 Solidity 中使用 ECDSA 验证链下结果和白名单
介绍
作为一名区块链开发者或该领域的热衷者,我们应该对以太坊的高gas问题并不陌生。以太坊的价格坚挺在3000美元区域,而Gas 价格平均上涨 50-70 Gwei,每笔交易的 Gas 费用越来越贵,一次简单的转账大约需要 4 美元。
有一个解决gas问题的方法,就是把这个计算放到链下,让服务器来做这个工作。
许多在线ECDSA教程涉及到数学的使用,关于s, r, v的一些东西,我们所有的开发人员都同意,其是无聊的,并且很难在没有bug的情况下实现。因此,在本文中,我们将使用OpenZeppelin和Ethers.js编写的合约中的内置函数来构建这个功能。
实际的例子
在这个项目中,我们将使用ECDSA的一个常见用例来演示这个方法,就是为NFT项目设置白名单,并包含代码片段来帮助我们入门。
这个项目是用JavaScript和Solidity编写的。
1. 设置
为了准备ECDSA,我们应该创建一个新的钱包,并仅将其用于该项目