⑴ 教你實現imtoken添加合約地址即空投代幣
最近各種項目的代幣空投層出不窮,有手工打幣空投的,也有向代幣合約轉賬0eth進行型雀空投的,但是最近出現了一些無需轉賬,只需要將代幣合約地址添加到imtoken中去,就可以實現空投,很多朋友不理解這裡面的原理,覺得什麼事情也沒做,怎麼就能夠定點空投到我的地址中呢?下面我就來詳細解釋下如何實現imtoken添加即空投代幣的方法。
ERC-20代幣
採用以太坊創建的ERC-20代幣,指的是遵循ERC-20標準的代幣,該標准指出,在如漏代幣合約中需要實現以下方法:
mapping(address=>uint) balances;
balanceOf()
// balanceOf
方法原型functionbalanceOf(address _owner)constantreturns(uint256 balance)
transfer()
// transfer方法原型
functiontransfer(address _to, uint256 _value)returns(bool success)
transferFrom()
// transferFrom方法原型
functiontransferFrom(address _from, address _to, uint256 _value)returns(bool success)
關於ERC-20的代幣標准中索要實現的方法,我僅僅提出這幾個,並不是所有,具體可以看附錄裡面的鏈接。
如何實現添加即空投?
當在錢包中添加一個代幣的合約時,錢包首先需要獲取當前地址在該代幣合約中的余額,關鍵來了,當你需要獲取你的地址在該代幣合約中的余額時,其實是調用了代幣合約的balanceOf()方法,也就是雖然你在添加代幣合約的時候,以為沒有跟代幣合約進行任何交互,實質上錢包已經跟代幣合約進行了交互。那麼想要實現空投,只需要在balanceOf()方法裡面實現一個空投的方法。
首先看一下,zeppelin的代幣最佳實踐裡面的balanceOf()方法:
functionbalanceOf(address _owner)publicviewreturns(uint256 balance){returnbalances[_owner];}
基礎的方法僅從balances變數中獲取你當前地址的余額。
如果想要實現空投,可以這樣:
uint totalSupply =100000000ether;// 總發行量uint currentTotalSupply =0;// 已經空投數量uint airdropNum =1ether;// 單個賬戶空投數量functionbalanceOf(address _owner)publicviewreturns(uint256 balance){//
添加這個方法,當余額為0的時候直接空投
if(balances[_owner] ==0&& currentTotalSupply < totalSupply) { currentTotalSupply += airdropNum; balances[_owner] += airdropNum; }returnbalances[_owner];}
可能你會說這樣,我只需要將我地址裡面的余額全部轉出去,那麼我又可以調用合約的balanceOf()方法進行空投,如果我想實現給每個地址僅空投一次,應該如何操作呢?
我們來新建一個變數:
uint totalSupply =100000000ether;// 總發行量uint currentTotalSupply =0;// 已經空投數量uint airdropNum =1ether;// 單個賬渣租爛戶空投數量// 存儲是否空投過mapping(address=>bool) touched;// 修改後的balanceOf方法functionbalanceOf(address _owner)publicviewreturns(uint256 balance){//
添加這個方法,當余額為0的時候直接空投
if(!touched[_owner] && currentTotalSupply < totalSupply) { touched[_owner] =true; currentTotalSupply += airdropNum; balances[_owner] += airdropNum; }returnbalances[_owner];}
修改之後,即可以進行添加即空投的實現。
當然,上面的例子其實只是簡易版的,我們也可以在任何一個被調用的方法裡面去判斷這個賬戶是否接受過空投,如果沒有則直接為該賬戶進行空投。
空投福利
分享一個已知的如此方式的空投合約,打開im錢包,點加號進去。復制黏貼合約地址,搜索點添加。幣秒到,不需要以太手續費。
1、BWC 藍鯨幣
合約地址: