首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何登记空投的地址?

如何登记空投的地址?
EN

Ethereum用户
提问于 2021-05-18 21:04:38
回答 1查看 588关注 0票数 1

我正在创建一个NFT游戏,我想为其他令牌持有者创建一个空投。我有持有者的地址,有两万多个地址。现在我的问题是,我如何使这些地址符合空投条件?

我想做的是,就像Uniswap做的那样,你点击索赔,它告诉你是否有空投,如果你有,你可以要求它。

所以在我的合同中,如果你有资格得到空投,你点击索赔,然后令牌被铸造并转移给你,所以所有的气体都在你身上。

但我的问题是如何告诉合同哪个地址符合空投的条件?我试过的是我创建了一个

mapping(address => uint) private _airdrop;

然后是一个函数

代码语言:javascript
复制
function registerAirdrop(address user, uint tokenId) public onlyOwner {
   _airdrop[user] = tokenId;
}

然后对每个地址调用这个函数2万次,但我很快意识到,这既不是时间也不是高效的。有更好的办法吗?我怎样才能告诉我的智能合同,哪个地址可以申请空投?

EN

回答 1

Ethereum用户

发布于 2021-05-19 03:04:31

您可以使用merkle树,并且只在合同中存储根,请参阅使用OpenZeppelin梅克尔证明库

发布整个树,要赎回的用户必须计算分支,并从他们的地址发送。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/99227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档