如何通过添加合约地址实现ERC-20代币钱包空投

imtoken官网地址 admin 2024-08-27 17:04 14 0

imToken 是一款全球领先的区块链数字资产管理工具[ZB],帮助你安全管理BTC, ETH, ATOM, EOS, TRX, CKB, BCH, LTC, DOT, KSM, FIL, XTZ 资产,同时支持去中心化币币兑换功能 ...

最近各种项目方的代币空投层出不穷,有的是手动空投,有的是通过转0eth到代币合约中实现空投,不过最近有部分空投是通过将代币合约地址添加到合约中来实现的,不需要转钱。这里很多朋友不明白原理,以为不用做任何操作就可以空投到自己的地址中。下面我来详细讲解一下如何添加和空投代币。

空投武器哪个最强

ERC-20 代币

空投快传

使用以太坊创建的ERC-20代币是指遵循ERC-20标准的代币,该标准规定需要在代币合约中实现以下方法:

空投在金融是什么意思

余额变量,存储所有拥有代币的地址的余额

mapping(address => uint) balances;

()

返回指定地址的账户余额

// balanceOf方法原型function balanceOf(address _owner) constant returns (uint256 balance)

()

将token数量转入

// transfer方法原型function transfer(address _to, uint256 _value) returns (bool success)

()

从地址 _from 向地址 _to 发送一定数量的代币

// transferFrom方法原型function transferFrom(address _from, address _to, uint256 _value) returns (bool success)

关于ERC-20 token标准中需要实现的方法,我只提到了这几种,并不是全部,具体请参见附录中的链接。

如何实现添加和空投?

在钱包中添加 token 合约时,钱包首先需要获取 token 合约中当前地址的余额。关键在于,当你在 token 合约中需要获取自己地址的余额时,其实是调用了 token 合约的 () 方法。也就是说,虽然在添加 token 合约时你以为没有和 token 合约进行交互,但实际上钱包已经和 token 合约进行交互了。如果你想实现空投,只需要在 () 方法中实现一个空投方法即可。

首先我们看一下token最佳实践中的()方法:

function balanceOf(address _owner) public view returns (uint256 balance) {        return balances[_owner];
}

基本方法只是从变量中获取您当前地址的余额。

如果你想实现空投,你可以这样做:

uint totalSupply = 100000000 ether; // 总发行量uint currentTotalSupply = 0;    // 已经空投数量uint airdropNum = 1 ether;        // 单个账户空投数量function balanceOf(address _owner) public view returns (uint256 balance) {        // 添加这个方法,当余额为0的时候直接空投
    if (balances[_owner] == 0 && currentTotalSupply < totalSupply) {
        currentTotalSupply += airdropNum;
        balances[_owner] += airdropNum;
    }        return balances[_owner];
}

你可能会说我只需要把我地址里的余额全部转走,然后调用合约的()方法空投就可以了,如果我想对每个地址只空投一次,该怎么做呢?

让我们创建一个新变量:

uint totalSupply = 100000000 ether; // 总发行量uint currentTotalSupply = 0;    // 已经空投数量uint airdropNum = 1 ether;        // 单个账户空投数量// 存储是否空投过mapping(address => bool) touched;// 修改后的balanceOf方法function balanceOf(address _owner) public view returns (uint256 balance) {    
    if (!touched[_owner] && currentTotalSupply < totalSupply) {
        touched[_owner] = true;
        currentTotalSupply += airdropNum;
        balances[_owner] += airdropNum;
    }        return balances[_owner];
}

修改完之后就可以添加和空投了。

当然上面的例子只是一个简化的版本,我们还可以在任意一个调用的方法中判断该账户是否收到过空投,如果没有imtoken空投,则直接对该账户进行空投。

空投福利

以下是一些已知的空投合约,打开im钱包,点击加号,复制粘贴合约地址,搜索点击添加imToken钱包下载,币秒到,无需支付以太坊费用。

1.(免费88888.88)合约地址

B2

2.(10,000)合约地址

71

3.PNS(80081枚)合约地址

07

4.发送(276个)合约地址

18

附录:

A. ERC-20 代币标准

B. ERC-20 代币合约的最佳实践代码

C.空投合约源代码

评论区