Contract 0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd6cf20bcec8f8d3c22d51dd33a445e9f2e50d1f829fdd690c7efccfef4ba9853Withdraw Tokens265997722021-12-31 18:22:21456 days 12 hrs ago0xaba59985e676f0d3651b6492407e180221e48791 IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.015571231566
0xa496d9e03ee8504e7eb98dd1ac3d5eac17989965696f4899fa3f0c034af0d1ecLock Tokens265995432021-12-31 18:19:15456 days 12 hrs agoDark Matter DeFi: Deployer IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.036518303346
0xc83f63b9bc5b734ab4da3750a5eb148f355445e99cdb55364f89a495f231e66dWithdraw Tokens265982252021-12-31 18:00:24456 days 12 hrs ago0xaba59985e676f0d3651b6492407e180221e48791 IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.024796100064
0x8a4b432cf2c02b4ef22b87ca96cd6c5d5fa40c7b5a2dda1faa0326c849ba8ad9Withdraw Tokens219782942021-11-14 0:36:42504 days 5 hrs ago0xaba59985e676f0d3651b6492407e180221e48791 IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.022921666788
0x364fdd55fa1f66597d26d3b539cbf70faa3b02615865874a9b376d804c89cee0Withdraw Tokens209613622021-11-03 17:05:56514 days 13 hrs ago0xaba59985e676f0d3651b6492407e180221e48791 IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.02201933185
0x5b930579de5f99ea5f771752413621e9d64ce35bd66b314752b99e0f6d056bacLock Tokens187963252021-10-11 1:19:27538 days 5 hrs agoDark Matter DeFi: Deployer IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.074510641834
0x61a2737781206448a5584585010d70406645b90e7297f2f9e019a50dcbd11c5bLock Tokens187960952021-10-11 1:15:44538 days 5 hrs agoDark Matter DeFi: Deployer IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.080824649354
0x4996c1604c851ba1d0d136e46dfcecfa8a0d3e674f6a458ec62c619ae9792f28Lock Tokens187958812021-10-11 1:12:34538 days 5 hrs agoDark Matter DeFi: Deployer IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.081207620441
0x849439ce5136c9d97fc9fffda39c56d7dccc9abc56e08f34667011f2d627b155Lock Tokens187957302021-10-11 1:10:18538 days 5 hrs agoDark Matter DeFi: Deployer IN  0xc1e61cc5454d5637cfddfb1d8af3cee33270a7cd0 FTM0.112310728014
0x0db5490d118af36c122f99fab8b949723f0ab21554a07ed161416aa1334350bf0x60606040187949122021-10-11 0:58:31538 days 5 hrs agoDark Matter DeFi: Deployer IN  Create: lock_Tokens0 FTM0.519050983239
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x0db5490d118af36c122f99fab8b949723f0ab21554a07ed161416aa1334350bf187949122021-10-11 0:58:31538 days 5 hrs ago Dark Matter DeFi: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
lock_Tokens

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 85000 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at FtmScan.com on 2021-10-11
*/

//Team Token Locking Contract
pragma solidity ^0.4.16;

/**
 * token contract functions
*/
contract Token {
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function approveAndCall(address spender, uint tokens, bytes data) external returns (bool success);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    require(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a / b;
    return c;
  }

  function sub(uint256 a, uint256 b) internal constant returns (uint256) {
    require(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    require(c >= a);
    return c;
  }

  function ceil(uint256 a, uint256 m) internal constant returns (uint256) {
    uint256 c = add(a,m);
    uint256 d = sub(c,1);
    return mul(div(d,m),m);
  }
}

contract owned {
        address public owner;

        function owned() public {
            owner = msg.sender;
        }

        modifier onlyOwner {
            require(msg.sender == owner);
            _;
        }

        function transferOwnership(address newOwner) onlyOwner public {
            owner = newOwner;
        }
}

contract lock_Tokens is owned{
    using SafeMath for uint256;
    
    /*
     * deposit vars
    */
    struct Items {
        address tokenAddress;
        address withdrawalAddress;
        uint256 tokenAmount;
        uint256 unlockTime;
        bool withdrawn;
    }
    
    uint256 public depositId;
    uint256[] public allDepositIds;
    mapping (address => uint256[]) public depositsByWithdrawalAddress;
    mapping (uint256 => Items) public lockedToken;
    mapping (address => mapping(address => uint256)) public walletTokenBalance;
    
    event LogWithdrawal(address SentToAddress, uint256 AmountTransferred);
    
    /**
     *lock tokens
    */
    function lockTokens(address _tokenAddress, address _withdrawalAddress, uint256 _amount, uint256 _unlockTime) public returns (uint256 _id) {
        require(_amount > 0);
        require(_unlockTime < 10000000000);
        
        //update balance in address
        walletTokenBalance[_tokenAddress][_withdrawalAddress] = walletTokenBalance[_tokenAddress][_withdrawalAddress].add(_amount);
        
        _id = ++depositId;
        lockedToken[_id].tokenAddress = _tokenAddress;
        lockedToken[_id].withdrawalAddress = _withdrawalAddress;
        lockedToken[_id].tokenAmount = _amount;
        lockedToken[_id].unlockTime = _unlockTime;
        lockedToken[_id].withdrawn = false;
        
        allDepositIds.push(_id);
        depositsByWithdrawalAddress[_withdrawalAddress].push(_id);
        
        // transfer tokens into contract
        require(Token(_tokenAddress).transferFrom(msg.sender, this, _amount));
    }
    
    /**
     *Create multiple locks
    */
    function createMultipleLocks(address _tokenAddress, address _withdrawalAddress, uint256[] _amounts, uint256[] _unlockTimes) public returns (uint256 _id) {
        require(_amounts.length > 0);
        require(_amounts.length == _unlockTimes.length);
        
        uint256 i;
        for(i=0; i<_amounts.length; i++){
            require(_amounts[i] > 0);
            require(_unlockTimes[i] < 10000000000);
            
            //update balance in address
            walletTokenBalance[_tokenAddress][_withdrawalAddress] = walletTokenBalance[_tokenAddress][_withdrawalAddress].add(_amounts[i]);
            
            _id = ++depositId;
            lockedToken[_id].tokenAddress = _tokenAddress;
            lockedToken[_id].withdrawalAddress = _withdrawalAddress;
            lockedToken[_id].tokenAmount = _amounts[i];
            lockedToken[_id].unlockTime = _unlockTimes[i];
            lockedToken[_id].withdrawn = false;
            
            allDepositIds.push(_id);
            depositsByWithdrawalAddress[_withdrawalAddress].push(_id);
            
            //transfer tokens into contract
            require(Token(_tokenAddress).transferFrom(msg.sender, this, _amounts[i]));
        }
    }
    
    /**
     *Extend lock Duration
    */
    function extendLockDuration(uint256 _id, uint256 _unlockTime) public {
        require(_unlockTime < 10000000000);
        require(_unlockTime > lockedToken[_id].unlockTime);
        require(!lockedToken[_id].withdrawn);
        require(msg.sender == lockedToken[_id].withdrawalAddress);
        
        //set new unlock time
        lockedToken[_id].unlockTime = _unlockTime;
    }
    
    /**
     *transfer locked tokens
    */
    function transferLocks(uint256 _id, address _receiverAddress) public {
        require(!lockedToken[_id].withdrawn);
        require(msg.sender == lockedToken[_id].withdrawalAddress);
        
        //decrease sender's token balance
        walletTokenBalance[lockedToken[_id].tokenAddress][msg.sender] = walletTokenBalance[lockedToken[_id].tokenAddress][msg.sender].sub(lockedToken[_id].tokenAmount);
        
        //increase receiver's token balance
        walletTokenBalance[lockedToken[_id].tokenAddress][_receiverAddress] = walletTokenBalance[lockedToken[_id].tokenAddress][_receiverAddress].add(lockedToken[_id].tokenAmount);
        
        //remove this id from sender address
        uint256 j;
        uint256 arrLength = depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress].length;
        for (j=0; j<arrLength; j++) {
            if (depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress][j] == _id) {
                depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress][j] = depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress][arrLength - 1];
                depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress].length--;
                break;
            }
        }
        
        //Assign this id to receiver address
        lockedToken[_id].withdrawalAddress = _receiverAddress;
        depositsByWithdrawalAddress[_receiverAddress].push(_id);
    }
    
    /**
     *withdraw tokens
    */
    function withdrawTokens(uint256 _id) public {
        require(block.timestamp >= lockedToken[_id].unlockTime);
        require(msg.sender == lockedToken[_id].withdrawalAddress);
        require(!lockedToken[_id].withdrawn);
        
        
        lockedToken[_id].withdrawn = true;
        
        //update balance in address
        walletTokenBalance[lockedToken[_id].tokenAddress][msg.sender] = walletTokenBalance[lockedToken[_id].tokenAddress][msg.sender].sub(lockedToken[_id].tokenAmount);
        
        //remove this id from this address
        uint256 j;
        uint256 arrLength = depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress].length;
        for (j=0; j<arrLength; j++) {
            if (depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress][j] == _id) {
                depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress][j] = depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress][arrLength - 1];
                depositsByWithdrawalAddress[lockedToken[_id].withdrawalAddress].length--;
                break;
            }
        }
        
        // transfer tokens to wallet address
        require(Token(lockedToken[_id].tokenAddress).transfer(msg.sender, lockedToken[_id].tokenAmount));
        LogWithdrawal(msg.sender, lockedToken[_id].tokenAmount);
    }

     /*get total token balance in contract*/
    function getTotalTokenBalance(address _tokenAddress) view public returns (uint256)
    {
       return Token(_tokenAddress).balanceOf(this);
    }
    
    /*get total token balance by address*/
    function getTokenBalanceByAddress(address _tokenAddress, address _walletAddress) view public returns (uint256)
    {
       return walletTokenBalance[_tokenAddress][_walletAddress];
    }
    
    /*get allDepositIds*/
    function getAllDepositIds() view public returns (uint256[])
    {
        return allDepositIds;
    }
    
    /*get getDepositDetails*/
    function getDepositDetails(uint256 _id) view public returns (address _tokenAddress, address _withdrawalAddress, uint256 _tokenAmount, uint256 _unlockTime, bool _withdrawn)
    {
        return(lockedToken[_id].tokenAddress,lockedToken[_id].withdrawalAddress,lockedToken[_id].tokenAmount,
        lockedToken[_id].unlockTime,lockedToken[_id].withdrawn);
    }
    
    /*get DepositsByWithdrawalAddress*/
    function getDepositsByWithdrawalAddress(address _withdrawalAddress) view public returns (uint256[])
    {
        return depositsByWithdrawalAddress[_withdrawalAddress];
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_withdrawalAddress","type":"address"},{"name":"_amounts","type":"uint256[]"},{"name":"_unlockTimes","type":"uint256[]"}],"name":"createMultipleLocks","outputs":[{"name":"_id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_withdrawalAddress","type":"address"}],"name":"getDepositsByWithdrawalAddress","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_walletAddress","type":"address"}],"name":"getTokenBalanceByAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_receiverAddress","type":"address"}],"name":"transferLocks","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"depositsByWithdrawalAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllDepositIds","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_unlockTime","type":"uint256"}],"name":"extendLockDuration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_withdrawalAddress","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_unlockTime","type":"uint256"}],"name":"lockTokens","outputs":[{"name":"_id","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getDepositDetails","outputs":[{"name":"_tokenAddress","type":"address"},{"name":"_withdrawalAddress","type":"address"},{"name":"_tokenAmount","type":"uint256"},{"name":"_unlockTime","type":"uint256"},{"name":"_withdrawn","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"depositId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenAddress","type":"address"}],"name":"getTotalTokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"walletTokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"lockedToken","outputs":[{"name":"tokenAddress","type":"address"},{"name":"withdrawalAddress","type":"address"},{"name":"tokenAmount","type":"uint256"},{"name":"unlockTime","type":"uint256"},{"name":"withdrawn","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allDepositIds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"SentToAddress","type":"address"},{"indexed":false,"name":"AmountTransferred","type":"uint256"}],"name":"LogWithdrawal","type":"event"}]

60606040525b60008054600160a060020a03191633600160a060020a03161790555b5b611817806100316000396000f300606060405236156100ee5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166303a29adf81146100f35780630bd59ad3146101b9578063315a095d14610239578063347c80ba146102515780634c5f7f5414610295578063530680d8146102c65780636ba039241461030757806376704de01461036e5780637d533c1e14610389578063890db72f146103d35780638da5cb5b146104305780639852099c1461046c578063adad19bd14610491578063b9e7df1c146104cf578063bb941cff14610513578063c9028aff14610570578063f2fde38b14610598575b600080fd5b34156100fe57600080fd5b6101a773ffffffffffffffffffffffffffffffffffffffff600480358216916024803590911691906064906044359081019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506105c695505050505050565b60405190815260200160405180910390f35b34156101c457600080fd5b6101e573ffffffffffffffffffffffffffffffffffffffff600435166108f0565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156102255780820151818401525b60200161020c565b505050509050019250505060405180910390f35b341561024457600080fd5b61024f60043561098e565b005b341561025c57600080fd5b6101a773ffffffffffffffffffffffffffffffffffffffff60043581169060243516610db2565b60405190815260200160405180910390f35b34156102a057600080fd5b61024f60043573ffffffffffffffffffffffffffffffffffffffff60243516610dec565b005b34156102d157600080fd5b6101a773ffffffffffffffffffffffffffffffffffffffff60043516602435611184565b60405190815260200160405180910390f35b341561031257600080fd5b6101e56111b6565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156102255780820151818401525b60200161020c565b505050509050019250505060405180910390f35b341561037957600080fd5b61024f600435602435611215565b005b341561039457600080fd5b6101a773ffffffffffffffffffffffffffffffffffffffff600435811690602435166044356064356112b3565b60405190815260200160405180910390f35b34156103de57600080fd5b6103e9600435611511565b60405173ffffffffffffffffffffffffffffffffffffffff95861681529390941660208401526040808401929092526060830152911515608082015260a001905180910390f35b341561043b57600080fd5b610443611564565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561047757600080fd5b6101a7611580565b60405190815260200160405180910390f35b341561049c57600080fd5b6101a773ffffffffffffffffffffffffffffffffffffffff60043516611586565b60405190815260200160405180910390f35b34156104da57600080fd5b6101a773ffffffffffffffffffffffffffffffffffffffff60043581169060243516611634565b60405190815260200160405180910390f35b341561051e57600080fd5b6103e9600435611651565b60405173ffffffffffffffffffffffffffffffffffffffff95861681529390941660208401526040808401929092526060830152911515608082015260a001905180910390f35b341561057b57600080fd5b6101a760043561169d565b60405190815260200160405180910390f35b34156105a357600080fd5b61024f73ffffffffffffffffffffffffffffffffffffffff600435166116c0565b005b60008060008451116105d757600080fd5b82518451146105e557600080fd5b5060005b83518110156108e657600084828151811061060057fe5b906020019060200201511161061457600080fd5b6402540be40083828151811061062657fe5b906020019060200201511061063a57600080fd5b61069284828151811061064957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff8089166000908152600560209081526040808320938b16835292905220549063ffffffff61172d16565b73ffffffffffffffffffffffffffffffffffffffff8088166000818152600560209081526040808320948b168084529482528083209590955560018054810180825580845260049092529490912080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116909317815590930180549091169091179055915083818151811061072657fe5b9060200190602002015160008381526004602052604090206002015582818151811061074e57fe5b90602001906020020151600083815260046020819052604090912060038101929092550180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560028054600181016107aa8382611764565b916000526020600020900160005b508390555073ffffffffffffffffffffffffffffffffffffffff851660009081526003602052604090208054600181016107f28382611764565b916000526020600020900160005b508390555073ffffffffffffffffffffffffffffffffffffffff86166323b872dd333087858151811061082f57fe5b906020019060200201516000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff93841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156108b757600080fd5b6102c65a03f115156108c857600080fd5b5050506040518051905015156108dd57600080fd5b5b6001016105e9565b5b50949350505050565b6108f861178e565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561098157602002820191906000526020600020905b81548152602001906001019080831161096d575b505050505090505b919050565b60008181526004602052604081206003015481904210156109ae57600080fd5b6000838152600460205260409020600101543373ffffffffffffffffffffffffffffffffffffffff9081169116146109e557600080fd5b6000838152600460208190526040909120015460ff1615610a0557600080fd5b600083815260046020818152604080842092830180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556002830154925473ffffffffffffffffffffffffffffffffffffffff90811685526005835281852033909116855290915290912054610a869163ffffffff61174a16565b6000848152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff9081168552600584528285203382168652845282852095909555600101549093168252600390529081205490925090505b80821015610c775760008381526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff16835260039091529020805484919084908110610b2a57fe5b906000526020600020900160005b50541415610c6b5760008381526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff1683526003909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301908110610ba257fe5b906000526020600020900160005b505460008481526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff16835260039091529020805484908110610bf257fe5b906000526020600020900160005b505560008381526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff16835260039091529020805490610c65907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301611764565b50610c77565b5b600190910190610adf565b600083815260046020526040808220805460029091015473ffffffffffffffffffffffffffffffffffffffff9091169263a9059cbb923392919051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b1515610d1f57600080fd5b6102c65a03f11515610d3057600080fd5b505050604051805190501515610d4557600080fd5b7fb4214c8c54fc7442f36d3682f59aebaf09358a4431835b30efb29d52cf9e1e9133600460008681526020019081526020016000206002015460405173ffffffffffffffffffffffffffffffffffffffff909216825260208201526040908101905180910390a15b505050565b73ffffffffffffffffffffffffffffffffffffffff8083166000908152600560209081526040808320938516835292905220545b92915050565b600082815260046020819052604082200154819060ff1615610e0d57600080fd5b6000848152600460205260409020600101543373ffffffffffffffffffffffffffffffffffffffff908116911614610e4457600080fd5b60008481526004602090815260408083206002810154905473ffffffffffffffffffffffffffffffffffffffff90811685526005845282852033909116855290925290912054610e999163ffffffff61174a16565b6000858152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff9081168552600580855283862033831687528552838620969096556002820154915481168552948352818420948816845293909152902054610f089163ffffffff61172d16565b6000858152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff9081168552600584528285208982168652845282852095909555600101549093168252600390529081205490925090505b808210156110f95760008481526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff16835260039091529020805485919084908110610fac57fe5b906000526020600020900160005b505414156110ed5760008481526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff1683526003909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff830190811061102457fe5b906000526020600020900160005b505460008581526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff1683526003909152902080548490811061107457fe5b906000526020600020900160005b505560008481526004602090815260408083206001015473ffffffffffffffffffffffffffffffffffffffff168352600390915290208054906110e7907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301611764565b506110f9565b5b600190910190610f61565b6000848152600460209081526040808320600190810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89169081179091558452600390925290912080549091810161116a8382611764565b916000526020600020900160005b50859055505b50505050565b60036020528160005260406000208181548110151561119f57fe5b906000526020600020900160005b91509150505481565b6111be61178e565b600280548060200260200160405190810160405280929190818152602001828054801561120a57602002820191906000526020600020905b8154815260200190600101908083116111f6575b505050505090505b90565b6402540be400811061122657600080fd5b600082815260046020526040902060030154811161124357600080fd5b6000828152600460208190526040909120015460ff161561126357600080fd5b6000828152600460205260409020600101543373ffffffffffffffffffffffffffffffffffffffff90811691161461129a57600080fd5b60008281526004602052604090206003018190555b5050565b60008083116112c157600080fd5b6402540be40082106112d257600080fd5b73ffffffffffffffffffffffffffffffffffffffff808616600090815260056020908152604080832093881683529290522054611315908463ffffffff61172d16565b73ffffffffffffffffffffffffffffffffffffffff8087166000818152600560209081526040808320948a16808452948252808320959095556001805481018082558084526004928390529590922080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116909417815580830180549094169094179092556002808401889055600384018790559290910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815492935090919081016113ea8382611764565b916000526020600020900160005b508290555073ffffffffffffffffffffffffffffffffffffffff841660009081526003602052604090208054600181016114328382611764565b916000526020600020900160005b508290555073ffffffffffffffffffffffffffffffffffffffff85166323b872dd3330866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff93841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156114e257600080fd5b6102c65a03f115156114f357600080fd5b50505060405180519050151561150857600080fd5b5b949350505050565b60008181526004602081905260409091208054600182015460028301546003840154939094015473ffffffffffffffffffffffffffffffffffffffff9283169492909116929060ff165b91939590929450565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff841602815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602401602060405180830381600087803b151561161257600080fd5b6102c65a03f1151561162357600080fd5b50505060405180519150505b919050565b600560209081526000928352604080842090915290825290205481565b60046020819052600091825260409091208054600182015460028301546003840154939094015473ffffffffffffffffffffffffffffffffffffffff9283169492909116929060ff1685565b60028054829081106116ab57fe5b906000526020600020900160005b5054905081565b6000543373ffffffffffffffffffffffffffffffffffffffff9081169116146116e857600080fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b5b50565b60008282018381101561173f57600080fd5b8091505b5092915050565b60008282111561175957600080fd5b508082035b92915050565b815481835581811511610dad57600083815260209020610dad9181019083016117ca565b5b505050565b60206040519081016040526000815290565b815481835581811511610dad57600083815260209020610dad9181019083016117ca565b5b505050565b61121291905b808211156117e457600081556001016117d0565b5090565b905600a165627a7a72305820c07ec6ee35bfca7b4da7521c2603c134dfd69fc52689eeadc474a23156373b2d0029

Deployed ByteCode Sourcemap

1755:7555:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:1243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3458:1243:0;;-1:-1:-1;3458:1243:0;;-1:-1:-1;;;;;;3458:1243:0;;;;;;;;;;;;;;;;9123:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;8:100;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;6715:1358:0;;;;;;;;;;;;;;;;8332:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5208:1455;;;;;;;;;;;;;;;;;;;;2119:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8561:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;8:100;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;4758:391:0;;;;;;;;;;;;;;;;;;2448:952;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8708:362;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1427:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2051:24;;;;;;;;;;;;;;;;;;;;;;;;;;;8127:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2243:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2082:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1643:105;;;;;;;;;;;;;;;;;;3458:1243;3598:11;3729:9;3648:1;3630:8;:15;:19;3622:28;;;;;;3688:12;:19;3669:8;:15;:38;3661:47;;;;;;-1:-1:-1;3755:1:0;3749:945;3760:8;:15;3758:1;:17;3749:945;;;3818:1;3804:8;3813:1;3804:11;;;;;;;;;;;;;;;;:15;3796:24;;;;;;3861:11;3843:12;3856:1;3843:15;;;;;;;;;;;;;;;;:29;3835:38;;;;;;3999:70;4057:8;4066:1;4057:11;;;;;;;;;;;;;;;;3999:33;;;;;;;;:18;:33;;;;;;;;:53;;;;;;;;;;;:70;:57;:70;:::i;:::-;3943:33;;;;;;;;:18;:33;;;;;;;;:53;;;;;;;;;;;;:126;;;;4106:9;4104:11;;;;;;;4130:16;;;:11;:16;;;;;;;:45;;;;;;;;;;;4190:34;;;:55;;;;;;;;;;4104:11;-1:-1:-1;4291:8:0;4300:1;4291:8;:11;;;;;;;;;;;;;;;4260:16;;;;:11;:16;;;;;:28;;:42;4347:12;4360:1;4347:12;:15;;;;;;;;;;;;;;;4317:16;;;;:11;:16;;;;;;;;:27;;;:45;;;;4377:26;:34;;;;;;4440:13;:23;;4377:34;4440:23;;;:13;:23;;:::i;:::-;;;;;;;;;;;-1:-1:-1;4440:23:0;;;-1:-1:-1;4478:47:0;;;;;;;:27;:47;;;;;:57;;;;;;:47;:57;;:::i;:::-;;;;;;;;;;;-1:-1:-1;4478:57:0;;;-1:-1:-1;4617:33:0;;;;4651:10;4663:4;4669:8;4678:1;4669:8;:11;;;;;;;;;;;;;;;4617:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4609:73;;;;;;;;3749:945;3777:3;;3749:945;;;3458:1243;;;;;;;;:::o;9123:178::-;9212:9;;:::i;:::-;9246:27;:47;9274:18;9246:47;;;;;;;;;;;;;;;9239:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9123:178;;;;:::o;6715:1358::-;7286:9;6797:16;;;:11;:16;;;;;:27;;;7286:9;;6778:15;:46;;6770:55;;;;;;6858:16;;;;:11;:16;;;;;:34;;;6844:10;6858:34;6844:48;;;6858:34;;6844:48;6836:57;;;;;;6913:16;;;;:11;:16;;;;;;;;:26;;;;6912:27;6904:36;;;;;;6971:16;;;;:11;:16;;;;;;;;:26;;;:33;;;;7000:4;6971:33;;;7192:28;;;;7145:29;;;;;;7126:49;;:18;:49;;;;;7176:10;7126:61;;;;;;;;;;;;:95;;;:65;:95;:::i;:::-;7062:49;7081:16;;;:11;:16;;;;;;;;:29;;;;;;7062:49;;:18;:49;;;;;7112:10;7062:61;;;;;;;;;:159;;;;7081:29;7354:34;;;;;7326:63;;:27;:63;;;;;:70;7062:49;;-1:-1:-1;7326:70:0;-1:-1:-1;7407:430:0;7419:9;7417:1;:11;7407:430;;;7454:63;7482:16;;;:11;:16;;;;;;;;:34;;;;;7454:63;;:27;:63;;;;;:66;;7524:3;;7454:63;7518:1;;7454:66;;;;;;;;;;;;;;;;;;:73;7450:376;;;7617:63;7645:16;;;:11;:16;;;;;;;;:34;;;;;7617:63;;:27;:63;;;;;:78;;7681:13;;;;7617:78;;;;;;;;;;;;;;;;-1:-1:-1;7617:78:0;7548:63;7576:16;;;:11;:16;;;;;;;;:34;;;;;7548:63;;:27;:63;;;;;:66;;7612:1;;7548:66;;;;;;;;;;;;;;;;-1:-1:-1;7548:147:0;7714:63;7742:16;;;:11;:16;;;;;;;;:34;;;;;7714:63;;:27;:63;;;;;:72;;;;;;;;;:::i;:::-;;7805:5;;7450:376;7407:430;7430:3;;;;;7407:430;;;7917:16;;;;:11;:16;;;;;;:29;;7969:28;;;;;7917:29;;;;;7911:45;;7957:10;;7969:28;7917:16;7911:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7903:96;;;;;;;;8010:55;8024:10;8036:11;:16;8048:3;8036:16;;;;;;;;;;;:28;;;8010:55;;;;;;;;;;;;;;;;;;;;;;;6715:1358;;;;:::o;8332:190::-;8465:33;;;;8434:7;8465:33;;;:18;:33;;;;;;;;:49;;;;;;;;;;8332:190;;;;;:::o;5208:1455::-;5919:9;5297:16;;;:11;:16;;;;;;;:26;;5919:9;;5297:26;;5296:27;5288:36;;;;;;5357:16;;;;:11;:16;;;;;:34;;;5343:10;5357:34;5343:48;;;5357:34;;5343:48;5335:57;;;;;;5586:16;;;;:11;:16;;;;;;;;:28;;;;5539:29;;;;;;5520:49;;:18;:49;;;;;5570:10;5520:61;;;;;;;;;;;;:95;;;:65;:95;:::i;:::-;5456:49;5475:16;;;:11;:16;;;;;;;;:29;;;;;;5456:49;;:18;:49;;;;;;5506:10;5456:61;;;;;;;;;:159;;;;5823:28;;;;5770:29;;;;5751:49;;;;;;;;:67;;;;;;;;;;;;:101;;;:71;:101;:::i;:::-;5681:49;5700:16;;;:11;:16;;;;;;;;:29;;;;;;5681:49;;:18;:49;;;;;:67;;;;;;;;;;:171;;;;5700:29;5987:34;;;;;5959:63;;:27;:63;;;;;:70;5681:49;;-1:-1:-1;5959:70:0;-1:-1:-1;6040:430:0;6052:9;6050:1;:11;6040:430;;;6087:63;6115:16;;;:11;:16;;;;;;;;:34;;;;;6087:63;;:27;:63;;;;;:66;;6157:3;;6087:63;6151:1;;6087:66;;;;;;;;;;;;;;;;;;:73;6083:376;;;6250:63;6278:16;;;:11;:16;;;;;;;;:34;;;;;6250:63;;:27;:63;;;;;:78;;6314:13;;;;6250:78;;;;;;;;;;;;;;;;-1:-1:-1;6250:78:0;6181:63;6209:16;;;:11;:16;;;;;;;;:34;;;;;6181:63;;:27;:63;;;;;:66;;6245:1;;6181:66;;;;;;;;;;;;;;;;-1:-1:-1;6181:147:0;6347:63;6375:16;;;:11;:16;;;;;;;;:34;;;;;6347:63;;:27;:63;;;;;:72;;;;;;;;;:::i;:::-;;6438:5;;6083:376;6040:430;6063:3;;;;;6040:430;;;6536:16;;;;:11;:16;;;;;;;;:34;;;;:53;;;;;;;;;;;;;6600:45;;:27;:45;;;;;;:55;;:45;;:55;;;:45;:55;;:::i;:::-;;;;;;;;;;;-1:-1:-1;6600:55:0;;;-1:-1:-1;5208:1455:0;;;;;:::o;2119:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8561:104::-;8610:9;;:::i;:::-;8644:13;8637:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8561:104;;:::o;4758:391::-;4860:11;4846:25;;4838:34;;;;;;4905:16;;;;:11;:16;;;;;:27;;;4891:41;;4883:50;;;;;;4953:16;;;;:11;:16;;;;;;;;:26;;;;4952:27;4944:36;;;;;;5013:16;;;;:11;:16;;;;;:34;;;4999:10;5013:34;4999:48;;;5013:34;;4999:48;4991:57;;;;;;5100:16;;;;:11;:16;;;;;:27;;:41;;;4758:391;;;:::o;2448:952::-;2573:11;2605;;;2597:20;;;;;;2650:11;2636:25;;2628:34;;;;;;2776:33;;;;;;;;:18;:33;;;;;;;;:53;;;;;;;;;;:66;;2834:7;2776:66;:57;:66;:::i;:::-;2720:33;;;;;;;;:18;:33;;;;;;;;:53;;;;;;;;;;;;:122;;;;2871:9;2869:11;;;;;;;2891:16;;;:11;:16;;;;;;;;:45;;;;;;;;;;;2947:34;;;:55;;;;;;;;;;;3013:28;;;;:38;;;3062:27;;;:41;;;3114:26;;;;:34;;;;;;3169:23;;2869:11;;-1:-1:-1;3013:28:0;;3169:23;;;;3013:28;3169:23;;:::i;:::-;;;;;;;;;;;-1:-1:-1;3169:23:0;;;-1:-1:-1;3203:47:0;;;;;;;:27;:47;;;;;:57;;;;;;:47;:57;;:::i;:::-;;;;;;;;;;;-1:-1:-1;3203:57:0;;;-1:-1:-1;3331:33:0;;;;3365:10;3377:4;3383:7;3331:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3323:69;;;;;;;;2448:952;;;;;;;:::o;8708:362::-;8769:21;8903:16;;;:11;:16;;;;;;;;:29;;;8933:34;;;8968:28;;;;9007:27;;;;9035:26;;;;;8903:29;;;;;8933:34;;;;;9007:27;9035:26;;8708:362;;;;;;;;:::o;1427:20::-;;;;;;:::o;2051:24::-;;;;:::o;8127:149::-;8201:7;8238:13;8232:30;;;8263:4;8232:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8127:149:0;;;;:::o;2243:74::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2191:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2082:30::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2082:30:0;;-1:-1:-1;2082:30:0;:::o;1643:105::-;1597:5;;1583:10;1597:5;1583:19;;;1597:5;;1583:19;1575:28;;;;;;1720:5;:16;;;;;;;;;;1618:1;1643:105;;:::o;1089:138::-;1151:7;1179:5;;;1199:6;;;;1191:15;;;;;;1220:1;1213:8;;1089:138;;;;;;:::o;965:118::-;1027:7;1051:6;;;;1043:15;;;;;;-1:-1:-1;1072:5:0;;;965:118;;;;;:::o;1755:7555::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://c07ec6ee35bfca7b4da7521c2603c134dfd69fc52689eeadc474a23156373b2d
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.