如何快速领取十二岁天才的token


新年快乐!


最近也是从各个社区看到天才小黄同学.不讨论小黄同学这个发币行为,仁者见仁智者见智。

我们只需要来领取下代币。比正常用户领取节约太多gas了。


首先这是小黄同学的代币coin

0x1c7e83f8c581a967940dbfa7984744646ae46b29
 找到cliam 函数

function claim() external{
if( (uint32(block.timestamp)-release_time) <= 360 days && is_claim[msg.sender] == false ){
is_claim[msg.sender] = true;
yet_claim_people.push(msg.sender);
_mint(msg.sender,return_claim_number());
} 
}

  我们发现这里主要校验了下,领取时间需要在合约发布后的360天内,是否领取过

因此我们需要使用各种新账户来cliam 领取。


大部分人会把eth 发给小号,让小号领取token,由于uniswap交易费很高,因此又要把token归并到一个账户来。这样不仅累,还浪费很多gas费用

因此我们这里直接部署合约来领取


pragma solidity ^0.8.0;
//被领取token 所需要的3个函数,转账,查询余额,领取空投
//0x1c7e83f8c581a967940dbfa7984744646ae46b29  12岁小孩的token地址
interface airdrop {
    function transfer(address recipient, uint256 amount) external;
    function balanceOf(address account) external view returns (uint256);
    function claim() external;
}
contract ClaimToken {
    address constant rnd = address(0x1c7E83f8C581a967940DBfa7984744646AE46b29);
   //for循环创建新合约claimer,也就是领取多少次
    function call(uint256 times) public {
        for(uint i=0;i<times;i++){
            new claimer(rnd);
        }
    }
//查询代币余额
    function balance(address account) external view returns (uint256){
        return airdrop(rnd).balanceOf(account);
          }
}
contract claimer{
    constructor(address rnd){
        //调用领取token函数
        airdrop(rnd).claim();
        //获取 新合约余额
        uint256 balance = airdrop(rnd).balanceOf(address(this));
        require(balance>0,'faled');
        //从新合约里把token 转移到调用发起人
        airdrop(rnd).transfer(address(tx.origin), balance);
        //自毁合约,使合约变为无效,有效地删除该地址地字节码。把合约的所有资金发送到目标地址
        selfdestruct(payable(address(msg.sender)));
    }
}


部署的时候只需要部署ClaimToken这个合约,并调用call 函数 参数是领取的次数。

大家可以使用ganache来fork主网,来用真实环境模拟调用。这是领取200次所用gas费用

 

 

 

本文来自博客园,作者:soth912,联系方式QQ:1161510735 互相学习转载请注明原文链接:https://www.cnblogs.com/soth912/p/15873075.html

推荐这些文章:

app开发快速理解——广播——Broadcast

 

...

app开发快速理解——Activity的生命周期

 

...

solidity投票智能合约代码

pragma solidity ^0.4.22;
//Remix编写
contract Ballot{

    struct Voter{
        uint weight;//投票(单票)权重
        bool vot...

Solidity 智能合约入门(二)----------基础语法

address 以太坊地址的长度,20个字节
int/uint 变长的有符号或无符号整型。支持以8递增,uint8到uint256。uint 默认为uint256。
bool 布尔型
mapping 键值对映射关系,如mapping(address => uint)   类似 key value
fixed/u...

token加密验证

1、将登陆地址等信息填写好,password字段使用参数化取值

 
2、在BeanShell 预处理程序中,将密码使用MD5加密,将加密后的password放入存到jmeter变量中

 
 
 
 
 
 3、使用正则表达式,提取token
. 是任意字...

solidity中的mapping

mapping可以理解为python中对字典的键值遍历,键是唯一的而值是可以重复的
mapping函数的构造: mapping(_KeyType => _ValueType)
 mapping (address => uint) public balances;
上文代码解析:mapping(键类型=>值类型...

LeetCode 1541. Minimum Insertions to Balance a Parentheses String

LeetCode 1541. Minimum Insertions to Balance a Parentheses String (平衡括号字符串的最少插入次数)
题目
链接
https://leetcode-cn.com/problems/minimum-insertions-to-balance-a-parentheses-str...

postman获取请求成功后存在响应头headers里的X-Subject-Token值,供下一个接口使用

需求:使用postman获取token接口请求成功后该token值存在了响应头headers中,下一个接口需要该token值才能请求成功,现需将token值自动取出供下一个接口使用
方法:
1、请求获取token接口成功

 
 
2、Tests添加脚本:

var jsondata = postman.getRes...

Token(JWT格式)

JWT详解:

 

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

...

Token和session的理解及使用【转】

最近项目中有用到Token和Session,但是我对此不是很理解,所以特地整理下学习笔记,已便自己查看,也可以帮助到更多跟我一样有疑惑者。
一、我们先解释一下他的含义:
          1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密...

文章标题:如何快速领取十二岁天才的token
文章链接:https://www.dianjilingqu.com/50860.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>