最近各種項目的代幣空投層出不窮窑睁,有手工打幣空投的带欢,也有向代幣合約轉(zhuǎn)賬0eth進(jìn)行空投的受神,但是最近出現(xiàn)了一些無需轉(zhuǎn)賬俺猿,只需要將代幣合約地址添加到imtoken中去碘举,就可以實現(xiàn)空投忘瓦,很多朋友不理解這里面的原理,覺得什么事情也沒做引颈,怎么就能夠定點(diǎn)空投到我的地址中呢耕皮?下面我就來詳細(xì)解釋下如何實現(xiàn)imtoken添加即空投代幣的方法。
ERC-20代幣
采用以太坊創(chuàng)建的ERC-20代幣蝙场,指的是遵循ERC-20標(biāo)準(zhǔn)的代幣凌停,該標(biāo)準(zhǔn)指出,在代幣合約中需要實現(xiàn)以下方法:
balances
余額變量售滤,該變量里面存儲了所有擁有代幣的地址的余額
mapping(address => uint) balances;
balanceOf()
返回指定地址的賬戶余額
// balanceOf方法原型function balanceOf(address _owner) constant returns (uint256 balance)
transfer()
轉(zhuǎn)移?_value?數(shù)量的token到地址?_to
// transfer方法原型function transfer(address _to, uint256 _value) returns (bool success)
transferFrom()
從地址_from發(fā)送數(shù)量為?_value的token到地址_to
// transferFrom方法原型function transferFrom(address _from, address _to, uint256 _value) returns (bool success)
關(guān)于ERC-20的代幣標(biāo)準(zhǔn)中索要實現(xiàn)的方法罚拟,我僅僅提出這幾個,并不是所有完箩,具體可以看附錄里面的鏈接赐俗。
如何實現(xiàn)添加即空投?
當(dāng)在錢包中添加一個代幣的合約時弊知,錢包首先需要獲取當(dāng)前地址在該代幣合約中的余額阻逮,關(guān)鍵來了,當(dāng)你需要獲取你的地址在該代幣合約中的余額時秩彤,其實是調(diào)用了代幣合約的?balanceOf()?方法叔扼,也就是雖然你在添加代幣合約的時候,以為沒有跟代幣合約進(jìn)行任何交互漫雷,實質(zhì)上錢包已經(jīng)跟代幣合約進(jìn)行了交互瓜富。那么想要實現(xiàn)空投,只需要在balanceOf()方法里面實現(xiàn)一個空投的方法珊拼。
首先看一下食呻,zeppelin的代幣最佳實踐里面的balanceOf()?方法:
function balanceOf(address _owner) public view returns (uint256 balance) { ? ? ? ?return balances[_owner];
}
基礎(chǔ)的方法僅從?balances?變量中獲取你當(dāng)前地址的余額。
如果想要實現(xiàn)空投澎现,可以這樣:
uint totalSupply = 100000000 ether; // 總發(fā)行量uint currentTotalSupply = 0; ? ?// 已經(jīng)空投數(shù)量uint airdropNum = 1 ether; ? ? ? ?// 單個賬戶空投數(shù)量function balanceOf(address _owner) public view returns (uint256 balance) { ? ? ? ?// 添加這個方法仅胞,當(dāng)余額為0的時候直接空投
? ?if (balances[_owner] == 0 && currentTotalSupply < totalSupply) {
? ? ? ?currentTotalSupply += airdropNum;
? ? ? ?balances[_owner] += airdropNum;
? ?} ? ? ? ?return balances[_owner];
}
可能你會說這樣,我只需要將我地址里面的余額全部轉(zhuǎn)出去剑辫,那么我又可以調(diào)用合約的balanceOf()方法進(jìn)行空投干旧,如果我想實現(xiàn)給每個地址僅空投一次,應(yīng)該如何操作呢妹蔽?
我們來新建一個變量:
uint totalSupply = 100000000 ether; // 總發(fā)行量uint currentTotalSupply = 0; ? ?// 已經(jīng)空投數(shù)量uint airdropNum = 1 ether; ? ? ? ?// 單個賬戶空投數(shù)量// 存儲是否空投過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];
}
修改之后椎眯,即可以進(jìn)行添加即空投的實現(xiàn)挠将。
當(dāng)然,上面的例子其實只是簡易版的编整,我們也可以在任何一個被調(diào)用的方法里面去判斷這個賬戶是否接受過空投舔稀,如果沒有則直接為該賬戶進(jìn)行空投。
空投福利
分享幾個已知的如此方式的空投合約掌测,打開im錢包内贮,點(diǎn)加號進(jìn)去。復(fù)制黏貼合約地址汞斧,搜索點(diǎn)添加夜郁。幣秒到,不需要以太手續(xù)費(fèi)粘勒。
用以太錢包竞端,imtoken,或類似這類錢包庙睡,搜索添加以下地址事富,空投幣親測到賬。
1. 復(fù)制以下地址搜索并添加埃撵,可獲得ProChain (88,888.88個)
0x8377ee6d3545Bc6ff1425ee3015DC648B149C7B2
2. 復(fù)制以下地址搜索并添加赵颅,可獲得Simoleon (10,000個)
0x86c8bF8532AA2601151c9DbbF4e4C4804e042571
3. 復(fù)制以下地址搜索并添加,可獲得PNS (80,081個)
0xce853db3359326db6d03981c9fb42983bbcdd007
4.向以下地址轉(zhuǎn)賬0.1ETH(手續(xù)費(fèi)調(diào)整到最低暂刘,到賬有延遲)饺谬,可獲得NKC(6666個約等于2000+元)
0xd4e9cFf0aD058E6b19824D60aFBC10198e149f55
5.向以下地址轉(zhuǎn)賬0.1ETH(手續(xù)費(fèi)調(diào)整到最低,到賬有延遲)谣拣,可獲得MCMC(8888個約等于2000+元)
0xd4e9cFf0aD058E6b19824D60aFBC10198e149f55
6.復(fù)制以下地址搜索并添加募寨,可獲得1000個CSAT
0xdb6192baf0e72ffd88d33508f15caedd5c79d75d?
7.復(fù)制以下地址搜索并添加,可獲得1000個CSAT
0xa5996f6b731b349e25d7d5f4dd93a5ce9947841f
打開以太坊錢包
點(diǎn)擊右側(cè)加號
鍵入合約地址森缠,搜索拔鹰,添加即可
前三個和后兩個不知幣的價值,何時贵涵,如何交易列肢,0擼先上
4、5中NKC和MCMC兩個幣已經(jīng)上線交易所宾茂,目前在做推廣瓷马,穩(wěn)賺。
親測有效跨晴。