Contract 0xa4a4ca6a18f3f92615ac96f7e2ec2d7e746bc73e

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xb2cd9cdb636e3c37712d865e6508284eba7ccff8febfc1dbc32f97470a949b27Approve520565902022-12-09 10:11:3859 days 15 hrs ago0x3d6991085ab1ae3926cb96f25684c40a364b6856 IN  0xa4a4ca6a18f3f92615ac96f7e2ec2d7e746bc73e0 FTM0.001186731589
0x122256c9d09c8eca8960e620005e688d9f227aa70de9720d851a0f353cd913f6Approve520565872022-12-09 10:11:3459 days 15 hrs ago0x3d6991085ab1ae3926cb96f25684c40a364b6856 IN  0xa4a4ca6a18f3f92615ac96f7e2ec2d7e746bc73e0 FTM0.001017933
0xf496e4dd670bbe723ab2a2eb81572e863937648662854658a46c3ad08b3776b20x60806040317097332022-02-22 15:23:04349 days 10 hrs agoSolidex: Deployer IN  Create: DepositToken0 FTM0.292100270394
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xf496e4dd670bbe723ab2a2eb81572e863937648662854658a46c3ad08b3776b2317097332022-02-22 15:23:04349 days 10 hrs ago Solidex: Deployer  Contract Creation0 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DepositToken

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 3 : LpDepositToken.sol
pragma solidity 0.8.11;

import "IERC20.sol";
import "ILpDepositor.sol";


contract DepositToken is IERC20 {

    string public name;
    string public symbol;
    uint8 public constant decimals = 18;

    mapping(address => mapping(address => uint256)) public override allowance;

    ILpDepositor public depositor;
    address public pool;

    constructor() {
        // set to prevent the implementation contract from being initialized
        pool = address(0xdead);
    }

    /**
        @dev Initializes the contract after deployment via a minimal proxy
     */
    function initialize(address _pool) external returns (bool) {
        require(pool == address(0));
        pool = _pool;
        depositor = ILpDepositor(msg.sender);
        string memory _symbol = IERC20(pool).symbol();
        name = string(abi.encodePacked("Solidex ", _symbol, " Deposit"));
        symbol = string(abi.encodePacked("sex-", _symbol));
        emit Transfer(address(0), msg.sender, 0);
        return true;
    }

    function balanceOf(address account) external view returns (uint256) {
        return depositor.userBalances(account, pool);
    }

    function totalSupply() external view returns (uint256) {
        return depositor.totalBalances(pool);
    }

    function approve(address _spender, uint256 _value) external override returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /** shared logic for transfer and transferFrom */
    function _transfer(address _from, address _to, uint256 _value) internal {
        if (_value > 0) {
            depositor.transferDeposit(pool, _from, _to, _value);
        }
        emit Transfer(_from, _to, _value);
    }

    /**
        @notice Transfer tokens to a specified address
        @param _to The address to transfer to
        @param _value The amount to be transferred
        @return Success boolean
     */
    function transfer(address _to, uint256 _value) public override returns (bool) {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    /**
        @notice Transfer tokens from one address to another
        @param _from The address which you want to send tokens from
        @param _to The address which you want to transfer to
        @param _value The amount of tokens to be transferred
        @return Success boolean
     */
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    )
        public
        override
        returns (bool)
    {
        require(allowance[_from][msg.sender] >= _value, "Insufficient allowance");
        if (allowance[_from][msg.sender] != type(uint).max) {
            allowance[_from][msg.sender] -= _value;
        }
        _transfer(_from, _to, _value);
        return true;
    }

    /**
        @dev Only callable ty `LpDepositor`. Used to trigger a `Transfer` event
             upon deposit of LP tokens, to aid accounting in block explorers.
     */
    function mint(address _to, uint256 _value) external returns (bool) {
        require(msg.sender == address(depositor));
        emit Transfer(address(0), _to, _value);
        return true;
    }

    /**
        @dev Only callable ty `LpDepositor`. Used to trigger a `Transfer` event
             upon withdrawal of LP tokens, to aid accounting in block explorers.
     */
    function burn(address _from, uint256 _value) external returns (bool) {
        require(msg.sender == address(depositor));
        emit Transfer(_from, address(0), _value);
        return true;
    }

}

File 2 of 3 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;

/**
 * Based on the OpenZeppelin IER20 interface:
 * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol
 *
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 3 of 3 : ILpDepositor.sol
pragma solidity 0.8.11;

interface ILpDepositor {
    function setTokenID(uint256 tokenID) external returns (bool);
    function userBalances(address user, address pool) external view returns (uint256);
    function totalBalances(address pool) external view returns (uint256);
    function transferDeposit(address pool, address from, address to, uint256 amount) external returns (bool);
    function whitelist(address token) external returns (bool);
}

Settings
{
  "evmVersion": "istanbul",
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "libraries": {
    "LpDepositToken.sol": {}
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositor","outputs":[{"internalType":"contract ILpDepositor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"initialize","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600480546001600160a01b03191661dead179055610bd5806100346000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb146101df578063c4d66de8146101f2578063c7c4ff4614610205578063dd62ed3e1461021857600080fd5b806370a08231146101b157806395d89b41146101c45780639dc29fac146101cc57600080fd5b806318160ddd116100c857806318160ddd1461015b57806323b872dd14610171578063313ce5671461018457806340c10f191461019e57600080fd5b806306fdde03146100ef578063095ea7b31461010d57806316f0115b14610130575b600080fd5b6100f7610243565b60405161010491906108a9565b60405180910390f35b61012061011b3660046108f8565b6102d1565b6040519015158152602001610104565b600454610143906001600160a01b031681565b6040516001600160a01b039091168152602001610104565b61016361033d565b604051908152602001610104565b61012061017f366004610922565b6103b7565b61018c601281565b60405160ff9091168152602001610104565b6101206101ac3660046108f8565b6104a1565b6101636101bf36600461095e565b6104e7565b6100f761056d565b6101206101da3660046108f8565b61057a565b6101206101ed3660046108f8565b6105c0565b61012061020036600461095e565b6105d6565b600354610143906001600160a01b031681565b610163610226366004610980565b600260209081526000928352604080842090915290825290205481565b60008054610250906109b3565b80601f016020809104026020016040519081016040528092919081815260200182805461027c906109b3565b80156102c95780601f1061029e576101008083540402835291602001916102c9565b820191906000526020600020905b8154815290600101906020018083116102ac57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061032c9086815260200190565b60405180910390a350600192915050565b60035460048054604051635774e43960e11b81526001600160a01b0391821692810192909252600092169063aee9c87290602401602060405180830381865afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b291906109ee565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156104275760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b604482015260640160405180910390fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020546000191461048c576001600160a01b038416600090815260026020908152604080832033845290915281208054849290610486908490610a07565b90915550505b61049784848461070b565b5060019392505050565b6003546000906001600160a01b031633146104bb57600080fd5b6040518281526001600160a01b03841690600090600080516020610b808339815191529060200161032c565b6003546004805460405163015b6a3360e71b81526001600160a01b03858116938201939093529082166024820152600092919091169063adb5198090604401602060405180830381865afa158015610543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056791906109ee565b92915050565b60018054610250906109b3565b6003546000906001600160a01b0316331461059457600080fd5b6040518281526000906001600160a01b03851690600080516020610b808339815191529060200161032c565b60006105cd33848461070b565b50600192915050565b6004546000906001600160a01b0316156105ef57600080fd5b600480546001600160a01b0384166001600160a01b031991821681178355600380549092163317909155604080516395d89b4160e01b815290516000936395d89b419280820192869290918290030181865afa158015610653573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067b9190810190610a42565b90508060405160200161068e9190610aef565b604051602081830303815290604052600090805190602001906106b29291906107e0565b50806040516020016106c49190610b31565b604051602081830303815290604052600190805190602001906106e89291906107e0565b5060405160008082523391600080516020610b808339815191529060200161032c565b80156107a0576003546004805460405163bd88035760e01b81526001600160a01b039182169281019290925285811660248301528481166044830152606482018490529091169063bd880357906084016020604051808303816000875af115801561077a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079e9190610b5d565b505b816001600160a01b0316836001600160a01b0316600080516020610b80833981519152836040516107d391815260200190565b60405180910390a3505050565b8280546107ec906109b3565b90600052602060002090601f01602090048101928261080e5760008555610854565b82601f1061082757805160ff1916838001178555610854565b82800160010185558215610854579182015b82811115610854578251825591602001919060010190610839565b50610860929150610864565b5090565b5b808211156108605760008155600101610865565b60005b8381101561089457818101518382015260200161087c565b838111156108a3576000848401525b50505050565b60208152600082518060208401526108c8816040850160208701610879565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146108f357600080fd5b919050565b6000806040838503121561090b57600080fd5b610914836108dc565b946020939093013593505050565b60008060006060848603121561093757600080fd5b610940846108dc565b925061094e602085016108dc565b9150604084013590509250925092565b60006020828403121561097057600080fd5b610979826108dc565b9392505050565b6000806040838503121561099357600080fd5b61099c836108dc565b91506109aa602084016108dc565b90509250929050565b600181811c908216806109c757607f821691505b602082108114156109e857634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215610a0057600080fd5b5051919050565b600082821015610a2757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610a5457600080fd5b815167ffffffffffffffff80821115610a6c57600080fd5b818401915084601f830112610a8057600080fd5b815181811115610a9257610a92610a2c565b604051601f8201601f19908116603f01168101908382118183101715610aba57610aba610a2c565b81604052828152876020848701011115610ad357600080fd5b610ae4836020830160208801610879565b979650505050505050565b67029b7b634b232bc160c51b815260008251610b12816008850160208701610879565b670811195c1bdcda5d60c21b6008939091019283015250601001919050565b637365782d60e01b815260008251610b50816004850160208701610879565b9190910160040192915050565b600060208284031215610b6f57600080fd5b8151801515811461097957600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ed1e0ac589b2beb8321fda3d7520ee95aa41b32476ca5fc8937ee0740eb49cd864736f6c634300080b0033

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.