全文小结:
在imToken2.0国际版本如何使用地址本?
【为什么要使用地址本】
以太坊的地址和比特币的地址都是一串哈希值字符串, 由于辨识度较低, 用户很容易出现转错地址的情况, 解决这一问题的方案可以指派拍从两点出发: 1. 使用 ENS 域名唯羡; 2. 就是使用地址本, 将常用的转账地址存储下来。但是目前 ENS 域名的普及率较低, 还没有 "人手一份", 所以地址本是比较好的解决方案
【如何羡宽添加地址】
点击 "我" - "地址本"
点击 "+" - 进入 "新建联系人"
输入"名称" - 点击 "添加地址" - 选择添加以太坊 / 比特币地址, 输入地址
点击 "保存" 按钮
【如何在转账时使用地址本】
这里以转账 ETH 举例:
输入金额后, 点击" 收款地址"右侧的蓝色地址本 logo 图标, 进入地址本界面, 并选择你想转账的地址
点击下一步, 确认转账地址是否正确, 然后完成转账操作
imtoken地址本是什么意思
地址本=银行卡号
创建钱包后会生成一个以 0x 开头的 42 位字符串,这个字符串就是钱包悉晌余地址,一个钱包对应一个钱包地址,地址唯一且不能修改,也就是说一个钱包中所有代币的转账收款地址都是一样的。例如,一个钱包中 ETH 的转账收款睁滚地址和 EOS 的转账收款地址是一样。这一点和交易平台上的不一样,平台上不谨枯同代币的转账收款地址一般都不同,因此,转币到交易平台前一定要确认好地址。钱包地址可以用于接收别人转币,也可以作为转币的凭证。
教你实现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 蓝鲸币
合约地址:0x9a74e5cb727f37bd1c8ef3887b8491bbf8e11039