ERC20水龙头合约
0x25df
March 26th, 2022

这是一个简单的ERC20水龙头合约,主要是为了开发$PEOPLE水龙头。但这个合约可以用于任何ERC20代币。代码开源,随意使用:

什么是代币水龙头?

当人渴的时候,就要去水龙头接水;当人想要免费代币的时候,就要去代币水龙头领。代币水龙头就是让用户免费领代币的网站/应用。

最早的代币水龙头是比特币(BTC)水龙头:现在BTC一枚要$44,000,但是在2010年,BTC的价格只有不到$0.1,并且持有人很少。为了扩大影响力,比特币社区的Gavin Andresen开发了BTC水龙头,让别人可以免费领BTC。撸羊毛大家都喜欢,当时就有很多人去撸,然后变成了BTC的信徒。BTC水龙头一共送出了超过19,700枚BTC,现在价值超过8亿美元!

更多关于比特币的趣闻,可以看我写的《区块链启示录》读书笔记:

水龙头合约逻辑

  • 合约仅发放一种ERC20代币,在初始化的时候确认,存于tokenContact变量。

    constructor(address _tokenContract) { tokenContract = _tokenContract; // set token contract }

  • 用户调用requestToken()函数,就能得到空投代币,并且每个用户只能领一次。

    `//allow users to call the requestTokens function to get tokens
    function requestTokens () external {
    require(requestedAddress[_msgSender()] == false, "Can't Request Multiple Times!");
    IERC20 token = IERC20(tokenContract);
    require(token.balanceOf(address(this)) >= amountAllowed, "Faucet Empty!");

      token.transfer(_msgSender(), amountAllowed); // transfer token
      requestedAddress[_msgSender()] = true; // record requested 
      
      emit SendToken(_msgSender(), amountAllowed); // emit event
    

    }`

前端

未完待续。。。

Arweave TX
tyM6OS0lo8zIfwLl7cS7SvTK3HvKnQL3KsTAzZ2A1DY
Ethereum Address
0x25df6DA2f4e5C178DdFF45038378C0b08E0Bce54
Content Digest
DwVamY3lj958P0aoi0fyJtOdgpFs3PXJuJvC64szUrs