添加地址秒到空投代币——怎么做到的?

admin 2024-01-27 42次阅读

image.png

前言

代币token

币圈好像不按常规的套路来,各种撒币送钱的事情刷新了我的三观。本体登记一个邮箱白名单就可以获得,当前市值4万+RMB。这期间还有个叫牛油果送币方式如上图,发送0个eth就可以获得2000+ENU,目前市值1千+RMB。。。。。

imtoken代币授权

新玩法

最近看到一些直接添加对应合约地址就能获得代币的。比如这个:, 代币sps,添加合约地址:18 ,即可获得276 个代币。

打开点击+号,搜索这个合约地址,确认添加imtoken提交代币信息,过了一会果然获得了276个sps的代币。

怎么做到的呢?

本着程序员的好奇心了解了下:

以太坊浏览器合约信息地址:

uint256 public totalSupply        = 208932000 ether;

可以看到总量为: * 10^18 个!!这么天文级别的数字,一个地址就送276个imToken钱包,可以基本确定是某个程序员开的一个小玩笑。(不排除有些项目未来真的产生价值)

接下来看看如何实现添加地址就实现代币分发的:

我们知道刚刚这个添加合约地址的动作,其实是调用了代币合约的 () 方法,来看下这个方法有什么古怪:

    uint256 startBalance              = 276 ether;
    
    mapping(address => bool)  touched;
    mapping(address => uint256) balances;
    function getBalance(address _a) internal constant returns(uint256)
    {
        if( currentTotalSupply < totalSupply ){
            if( touched[_a] )
                return balances[_a];
            else
                return balances[_a].add( startBalance );
        } else {
            return balances[_a];
        }
    }
    
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return getBalance( _owner );
    }

可以看到在 》 中添加了一个判断,如果当前钱包地址没有添加过就给这个地址分发定义好数量的代币。

最后我们在看看这个代币目前的分发情况:

image.png

从中可以看到当前还剩有:270 个!!每次276个也就是说还需要9793*10^18个新钱包地址领完所有的sps代币。。。

结语:

至此问题已经明了,加合约地址就送代币确实是技术可行的。但是否未来有没有价值就另外一说了,希望大家有自己的判断。