ETH Price: $2,539.79 (+0.46%)

Transaction Decoder

Block:
15283000 at Aug-05-2022 02:56:52 PM +UTC
Transaction Fee:
0.0080278893 ETH $20.39
Gas Used:
283,671 Gas / 28.3 Gwei

Emitted Events:

0 BoneToken.Transfer( from=0x0000000000000000000000000000000000000000, to=DevBoneDistributor, value=1061644519932061144 )
1 BoneToken.Transfer( from=0x0000000000000000000000000000000000000000, to=tBoneBoneDistributor, value=106164451993206114 )
2 BoneToken.Transfer( from=0x0000000000000000000000000000000000000000, to=xShibBoneDistributor, value=318493355979618343 )
3 BoneToken.Transfer( from=0x0000000000000000000000000000000000000000, to=xLeashBoneDistributor, value=106164451993206114 )
4 BoneToken.Transfer( from=0x0000000000000000000000000000000000000000, to=[Receiver] TopDog, value=10616445199320611449 )
5 BoneToken.Transfer( from=[Receiver] TopDog, to=[Sender] 0x1d3d083dbedbc1f3741ed8301fa601f03886dd94, value=17773621217834005 )
6 BoneToken.Transfer( from=[Receiver] TopDog, to=BoneLocker, value=36085837018026617 )
7 UniswapV2Pair.Transfer( from=[Receiver] TopDog, to=[Sender] 0x1d3d083dbedbc1f3741ed8301fa601f03886dd94, value=21231660893875562966613 )
8 TopDog.Withdraw( user=[Sender] 0x1d3d083dbedbc1f3741ed8301fa601f03886dd94, pid=23, amount=21231660893875562966613 )

Account State Difference:

  Address   Before After State Difference Code
0x1d3D083d...03886DD94
1.010622310045459739 Eth
Nonce: 64
1.002594420745459739 Eth
Nonce: 65
0.0080278893
0x5660c518...EB7935d1E
0x94235659...Dbb17C8d7
(Shiba Inu: Migrator)
0x9813037e...6778218d9
0xa404F66B...B239bcdc7
(ShibaSwap: Bone Locker)
(Poolin 4)
724.367877094476547745 Eth724.372498744780932725 Eth0.00462165030438498

Execution Trace

TopDog.withdraw( _pid=23, _amount=21231660893875562966613 )
  • UniswapV2Pair.balanceOf( 0x94235659cF8b805B2c658f9ea2D6d6DDbb17C8d7 ) => ( 24566611523553911900194117 )
  • BoneToken.mint( _to=0x44c652d679D99BB406167dE9651d2535850FB479, _amount=1061644519932061144 )
  • BoneToken.mint( _to=0x34AD2D8a212cb7d6909D9B523bb5847Aa236CB25, _amount=106164451993206114 )
  • BoneToken.mint( _to=0x526684cde5E9ed50703469E1e21e388aD084e0f8, _amount=318493355979618343 )
  • BoneToken.mint( _to=0x68d494e06f70D1DD13f9fAaCd122799D4044412b, _amount=106164451993206114 )
  • BoneToken.mint( _to=0x94235659cF8b805B2c658f9ea2D6d6DDbb17C8d7, _amount=10616445199320611449 )
  • BoneToken.balanceOf( account=0x94235659cF8b805B2c658f9ea2D6d6DDbb17C8d7 ) => ( 10624432690952127607008516 )
  • BoneToken.transfer( recipient=0x1d3D083dbEDbC1f3741ed8301fA601f03886DD94, amount=17773621217834005 ) => ( True )
  • BoneToken.balanceOf( account=0x94235659cF8b805B2c658f9ea2D6d6DDbb17C8d7 ) => ( 10624432673178506389174511 )
  • BoneToken.transfer( recipient=0xa404F66B9278c4aB8428225014266B4B239bcdc7, amount=36085837018026617 ) => ( True )
  • BoneLocker.lock( _holder=0x1d3D083dbEDbC1f3741ed8301fA601f03886DD94, _amount=36085837018026617, _isDev=False )
  • UniswapV2Pair.transfer( to=0x1d3D083dbEDbC1f3741ed8301fA601f03886DD94, value=21231660893875562966613 ) => ( True )
    File 1 of 8: TopDog
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
    import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
    import "@openzeppelin/contracts/utils/EnumerableSet.sol";
    import "@openzeppelin/contracts/math/SafeMath.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
    import "./BoneToken.sol";
    import "./BoneLocker.sol";
    interface IMigratorShib {
    // Perform LP token migration from legacy UniswapV2 to ShibaSwap.
    // Take the current LP token address and return the new LP token address.
    // Migrator should have full access to the caller's LP token.
    // Return the new LP token address.
    //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 8: DevBoneDistributor
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
    import "@openzeppelin/contracts/math/SafeMath.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    import "./BoneLocker.sol";
    contract DevBoneDistributor is Ownable {
    using SafeMath for uint256;
    IERC20 public bone;
    BoneLocker public boneLocker;
    address public devWallet;
    address public marketingAndGrowthWallet;
    uint256 public devSharePercent;
    uint256 public marketingAndGrowthSharePercent;
    event WalletUpdated(string wallet, address indexed user, address newAddr);
    event DistributionUpdated(uint devSharePercent, uint marketingAndGrowthSharePercent);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 8: BoneToken
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    // BoneToken with Governance.
    contract BoneToken is ERC20("BONE SHIBASWAP", "BONE"), Ownable {
    /// @notice Creates `_amount` token to `_to`. Must only be called by the owner (TopDog).
    function mint(address _to, uint256 _amount) public onlyOwner {
    _mint(_to, _amount);
    _moveDelegates(address(0), _delegates[_to], _amount);
    }
    function _transfer(address sender, address recipient, uint256 amount) internal override {
    super._transfer(sender, recipient, amount);
    _moveDelegates(_delegates[sender], _delegates[recipient], amount);
    }
    // Copied and modified from YAM code:
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 8: tBoneBoneDistributor
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "./BasicBoneDistributor.sol";
    contract tBoneBoneDistributor is BasicBoneDistributor {
    constructor (IERC20 _bone) BasicBoneDistributor(_bone) public {}
    }// SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/math/SafeMath.sol";
    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    abstract contract BasicBoneDistributor is Ownable {
    using SafeMath for uint256;
    IERC20 public bone;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('receiveApproval(address,uint256,address,uint256)')));
    uint public lockPercentage = 67;
    constructor (IERC20 _bone) public {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 8: xShibBoneDistributor
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "./BasicBoneDistributor.sol";
    contract xShibBoneDistributor is BasicBoneDistributor {
    constructor (IERC20 _bone) BasicBoneDistributor(_bone) public {}
    }// SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/math/SafeMath.sol";
    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    abstract contract BasicBoneDistributor is Ownable {
    using SafeMath for uint256;
    IERC20 public bone;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('receiveApproval(address,uint256,address,uint256)')));
    uint public lockPercentage = 67;
    constructor (IERC20 _bone) public {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 8: xLeashBoneDistributor
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "./BasicBoneDistributor.sol";
    contract xLeashBoneDistributor is BasicBoneDistributor {
    constructor (IERC20 _bone) BasicBoneDistributor(_bone) public {}
    }// SPDX-License-Identifier: MIT
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/math/SafeMath.sol";
    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
    import "@openzeppelin/contracts/access/Ownable.sol";
    abstract contract BasicBoneDistributor is Ownable {
    using SafeMath for uint256;
    IERC20 public bone;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('receiveApproval(address,uint256,address,uint256)')));
    uint public lockPercentage = 67;
    constructor (IERC20 _bone) public {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 8: BoneLocker
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: UNLICENSED
    pragma solidity 0.6.12;
    import "@openzeppelin/contracts/access/Ownable.sol";
    import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
    import "@openzeppelin/contracts/math/SafeMath.sol";
    // BoneToken locker contract.
    contract BoneLocker is Ownable {
    using SafeMath for uint256;
    IERC20 boneToken;
    address emergencyAddress;
    bool emergencyFlag = false;
    struct LockInfo{
    uint256 _amount;
    uint256 _timestamp;
    bool _isDev;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 8: UniswapV2Pair
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // SPDX-License-Identifier: MIT
    pragma solidity =0.6.12;
    import './UniswapV2ERC20.sol';
    import './libraries/Math.sol';
    import './libraries/UQ112x112.sol';
    import './interfaces/IERC20.sol';
    import './interfaces/IUniswapV2Factory.sol';
    import './interfaces/IUniswapV2Callee.sol';
    interface IMigrator {
    // Return the desired amount of liquidity token that the migrator wants.
    function desiredLiquidity() external view returns (uint256);
    }
    contract UniswapV2Pair is UniswapV2ERC20 {
    using SafeMathUniswap for uint;
    using UQ112x112 for uint224;
    uint public constant MINIMUM_LIQUIDITY = 10**3;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX