ETH Price: $3,373.49 (-1.40%)

Contract

0x72377f31e30a405282b522d588AEbbea202b4f23
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Varen (VRN) (@$2.49)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer212761232024-11-27 2:32:231 hr ago1732674743IN
Varen: VRN Token
0 ETH0.0004178.87893536
Approve212628332024-11-25 5:58:2346 hrs ago1732514303IN
Varen: VRN Token
0 ETH0.000287456.22338669
Transfer212628272024-11-25 5:57:1146 hrs ago1732514231IN
Varen: VRN Token
0 ETH0.000341496.59993012
Approve212593302024-11-24 18:15:352 days ago1732472135IN
Varen: VRN Token
0 ETH0.0005161511.1746844
Transfer212593252024-11-24 18:14:352 days ago1732472075IN
Varen: VRN Token
0 ETH0.000591411.42991865
Transfer212473302024-11-23 2:04:234 days ago1732327463IN
Varen: VRN Token
0 ETH0.0005488911.6871117
Transfer212412462024-11-22 5:40:594 days ago1732254059IN
Varen: VRN Token
0 ETH0.0004953310.54668699
Approve212326032024-11-21 0:43:356 days ago1732149815IN
Varen: VRN Token
0 ETH0.000223458.49963223
Approve212326032024-11-21 0:43:356 days ago1732149815IN
Varen: VRN Token
0 ETH0.000223458.49963223
Approve212326022024-11-21 0:43:236 days ago1732149803IN
Varen: VRN Token
0 ETH0.000354487.67446975
Transfer212325962024-11-21 0:42:116 days ago1732149731IN
Varen: VRN Token
0 ETH0.000460558.90094771
Approve212320062024-11-20 22:43:356 days ago1732142615IN
Varen: VRN Token
0 ETH0.0004780410.28283447
Approve212103002024-11-17 22:05:119 days ago1731881111IN
Varen: VRN Token
0 ETH0.0005936612.84603586
Transfer212102962024-11-17 22:04:239 days ago1731881063IN
Varen: VRN Token
0 ETH0.0004283712.36583954
Approve212016152024-11-16 17:00:5910 days ago1731776459IN
Varen: VRN Token
0 ETH0.0007004215.1640952
Approve212016112024-11-16 17:00:1110 days ago1731776411IN
Varen: VRN Token
0 ETH0.0006884214.9041675
Approve212016022024-11-16 16:58:2310 days ago1731776303IN
Varen: VRN Token
0 ETH0.0007410416.04346728
Transfer212015962024-11-16 16:57:1110 days ago1731776231IN
Varen: VRN Token
0 ETH0.0005386515.5492433
Approve211960832024-11-15 22:30:1111 days ago1731709811IN
Varen: VRN Token
0 ETH0.001121724.12782146
Transfer211797052024-11-13 15:36:2313 days ago1731512183IN
Varen: VRN Token
0 ETH0.0027146378.36256288
Approve211655192024-11-11 16:04:4715 days ago1731341087IN
Varen: VRN Token
0 ETH0.001547833.29336637
Approve210785242024-10-30 12:41:4727 days ago1730292107IN
Varen: VRN Token
0 ETH0.0004837910.46852928
Approve210625362024-10-28 7:07:3529 days ago1730099255IN
Varen: VRN Token
0 ETH0.000150176.20389902
Approve210625352024-10-28 7:07:2329 days ago1730099243IN
Varen: VRN Token
0 ETH0.000148166.12090777
Approve209809002024-10-16 21:46:3541 days ago1729115195IN
Varen: VRN Token
0 ETH0.0005984612.94980206
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Varen

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 9999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: Varen.sol
// SPDX-License-Identifier: MIT

/*
 ____   ____        __        _______      _________   ____  _____ 
|_  _| |_  _|      /  \      |_   __ \    |_   ___  | |_   \|_   _|
  \ \   / /       / /\ \       | |__) |     | |_  \_|   |   \ | |  
   \ \ / /       / ____ \      |  __ /      |  _|  _    | |\ \| |  
    \ ' /      _/ /    \ \_   _| |  \ \_   _| |___/ |  _| |_\   |_ 
     \_/      |____|  |____| |____| |___| |_________| |_____|\____|

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/

pragma solidity 0.8.4;

import "./IERC677.sol";
import "./SafeMath.sol";

contract Varen is IERC677 {
    using SafeMath for uint256;
    
    /// @notice EIP-20 token name for this token
    string public constant override name = 'Varen';
    
    /// @notice EIP-20 token symbol for this token
    string public constant override symbol = 'VRN';
    
    /// @notice EIP-20 token decimals for this token
    uint8 public constant override decimals = 18;
    
    /// @notice Total number of tokens in circulation: 88,888
    uint256 public constant override totalSupply = 88888e18;
    
    /// @notice Allowance amounts on behalf of others
    mapping (address => mapping (address => uint256)) private _allowances;
    
    /// @notice Official record of token balances for each account
    mapping (address => uint256) private _balances;
    
    /// @notice Initial treasury of Varen 
    address private constant TREASURY = 0xE69A81b96FBF5Cb6CAe95d2cE5323Eff2bA0EAE4;
    
    /// @notice Construct Varen token and allocate all tokens to treasury
    constructor() {
        _balances[TREASURY] = totalSupply;
        emit Transfer(address(0), TREASURY, totalSupply);
    }
    
    /**
     * @notice Get the number of tokens held by `account`
     * @param account The address of the account to get the balance of
     * @return The number of tokens held
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    /**
     * @notice Get the number of tokens `spender` is approved to spend on behalf of `owner`
     * @param owner The address of the account holding the funds
     * @param spender The address of the account spending the funds
     * @return The number of tokens approved
     */
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `recipient`
     * @param recipient The address of the destination account
     * @param amount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    
    /**
     * @notice Transfer `amount` tokens from `msg.sender` to `recipient` and call the recipient if it is a contract
     * @param recipient The address of the destination account
     * @param amount The number of tokens to transfer
     * @param data The extra data to be passed to the receiving contract.
     * @return Whether or not the transfer succeeded
     */
    function transferAndCall(address recipient, uint amount, bytes memory data) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        emit Transfer(msg.sender, recipient, amount, data);
        
        if (_isContract(recipient)) {
          IERC677Receiver(recipient).onTokenTransfer(msg.sender, amount, data);
        }
        
        return true;
    }
    
    /**
     * @notice Transfer `amount` tokens from `sender` to `recipient`
     * @param sender The address of the source account
     * @param recipient The address of the destination account
     * @param amount The number of tokens to transfer
     * @return Whether or not the transfer succeeded
     */
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "amount exceeds allowance"));
        return true;
    }

    /**
     * @notice Approve `spender` to transfer up to `amount` from `msg.sender`
     * @dev This will overwrite the approval amount for `spender`
     *  and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * 
     * @param spender The address of the account which may transfer tokens
     * @param amount The number of tokens that are approved
     * @return Whether or not the approval succeeded
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    /**
     * @notice Atomically increase the allowance granted to `spender` by msg.sender. 
     * @dev This is an alternative to {approve} that can be used as a mitigation for
     *  problems described [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * 
     * @param spender The address of the account for which the allowance has to be increased
     * @param addedValue The number of tokens to increase the allowance by
     * @return Whether or not the allowance was successfully increased
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }
    
    /**
     * @notice Atomically decrease the allowance granted to `spender` by msg.sender. 
     * @dev This is an alternative to {approve} that can be used as a mitigation for
     *  problems described [here](https://eips.ethereum.org/EIPS/eip-20#approve)
     * 
     * @param spender The address of the account for which the allowance has to be decreased
     * @param subtractedValue The number of tokens to decrease the allowance by
     * @return Whether or not the allowance was successfully decreased
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "decreased allowance below zero"));
        return true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) private {
        _balances[sender] = _balances[sender].sub(amount, "amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _isContract(address addr) private view returns (bool) {
        uint256 length;
        assembly { length := extcodesize(addr) }
        return length > 0;
    }
}

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

pragma solidity 0.8.4;

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address recipient, uint amount) external returns (bool);
    function transferFrom(address sender, 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);

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

interface IERC677 is IERC20 {
    function transferAndCall(address recipient, uint amount, bytes memory data) external returns (bool success);
    
    event Transfer(address indexed from, address indexed to, uint value, bytes data);
}

interface IERC677Receiver {
    function onTokenTransfer(address sender, uint value, bytes memory data) external;
}

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

pragma solidity 0.8.4;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

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"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Transfer","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","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":"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5073e69a81b96fbf5cb6cae95d2ce5323eff2ba0eae46000818152600160209081526912d2a0cd7b3129e000007fd14f6c126682aecef55f7628bd2b505c4e17122948204a1fb14682d624c63b798190556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ab8806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80634000aea011610081578063a457c2d71161005b578063a457c2d714610232578063a9059cbb14610245578063dd62ed3e1461025857600080fd5b80634000aea0146101ad57806370a08231146101c057806395d89b41146101f657600080fd5b806323b872dd116100b257806323b872dd1461016d578063313ce56714610180578063395093511461019a57600080fd5b806306fdde03146100d9578063095ea7b31461012b57806318160ddd1461014e575b600080fd5b6101156040518060400160405280600581526020017f566172656e00000000000000000000000000000000000000000000000000000081525081565b60405161012291906109c9565b60405180910390f35b61013e610139366004610815565b61029c565b6040519015158152602001610122565b61015f6912d2a0cd7b3129e0000081565b604051908152602001610122565b61013e61017b3660046107da565b6102b2565b610188601281565b60405160ff9091168152602001610122565b61013e6101a8366004610815565b610345565b61013e6101bb36600461083e565b610386565b61015f6101ce36600461078e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b6101156040518060400160405280600381526020017f56524e000000000000000000000000000000000000000000000000000000000081525081565b61013e610240366004610815565b610493565b61013e610253366004610815565b61050c565b61015f6102663660046107a8565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526020818152604080832093909416825291909152205490565b60006102a9338484610519565b50600192915050565b60006102bf848484610586565b604080518082018252601881527f616d6f756e74206578636565647320616c6c6f77616e6365000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152808252838120338083529252929092205461033b928792909161033691879061068b565b610519565b5060019392505050565b3360008181526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916102a991859061033690866106e5565b6000610393338585610586565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040516103f29291906109dc565b60405180910390a3833b1561033b576040517fa4c0ed3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063a4c0ed36906104579033908790879060040161098b565b600060405180830381600087803b15801561047157600080fd5b505af1158015610485573d6000803e3d6000fd5b505050505060019392505050565b604080518082018252601e81527f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f000060208083019190915233600081815280835284812073ffffffffffffffffffffffffffffffffffffffff881682529092529281205490926102a992909186916103369190879061068b565b60006102a9338484610586565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080518082018252601681527f616d6f756e7420657863656564732062616c616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff86166000908152600190915291909120546105ee91839061068b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461062a90826106e5565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105799085815260200190565b600081848411156106d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c991906109c9565b60405180910390fd5b506106dd8385610a0d565b949350505050565b6000806106f283856109f5565b90508381101561075e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c9565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461078957600080fd5b919050565b60006020828403121561079f578081fd5b61075e82610765565b600080604083850312156107ba578081fd5b6107c383610765565b91506107d160208401610765565b90509250929050565b6000806000606084860312156107ee578081fd5b6107f784610765565b925061080560208501610765565b9150604084013590509250925092565b60008060408385031215610827578182fd5b61083083610765565b946020939093013593505050565b600080600060608486031215610852578283fd5b61085b84610765565b925060208401359150604084013567ffffffffffffffff8082111561087e578283fd5b818601915086601f830112610891578283fd5b8135818111156108a3576108a3610a53565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108e9576108e9610a53565b81604052828152896020848701011115610901578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008151808452815b818110156109475760208185018101518683018201520161092b565b818111156109585782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006109c06060830184610922565b95945050505050565b60208152600061075e6020830184610922565b8281526040602082015260006106dd6040830184610922565b60008219821115610a0857610a08610a24565b500190565b600082821015610a1f57610a1f610a24565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220fe6ab997cc9a03f47c32875c8763289fcfeb7227aeb59d5e6d2c600bdd35b1ee64736f6c63430008040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80634000aea011610081578063a457c2d71161005b578063a457c2d714610232578063a9059cbb14610245578063dd62ed3e1461025857600080fd5b80634000aea0146101ad57806370a08231146101c057806395d89b41146101f657600080fd5b806323b872dd116100b257806323b872dd1461016d578063313ce56714610180578063395093511461019a57600080fd5b806306fdde03146100d9578063095ea7b31461012b57806318160ddd1461014e575b600080fd5b6101156040518060400160405280600581526020017f566172656e00000000000000000000000000000000000000000000000000000081525081565b60405161012291906109c9565b60405180910390f35b61013e610139366004610815565b61029c565b6040519015158152602001610122565b61015f6912d2a0cd7b3129e0000081565b604051908152602001610122565b61013e61017b3660046107da565b6102b2565b610188601281565b60405160ff9091168152602001610122565b61013e6101a8366004610815565b610345565b61013e6101bb36600461083e565b610386565b61015f6101ce36600461078e565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b6101156040518060400160405280600381526020017f56524e000000000000000000000000000000000000000000000000000000000081525081565b61013e610240366004610815565b610493565b61013e610253366004610815565b61050c565b61015f6102663660046107a8565b73ffffffffffffffffffffffffffffffffffffffff91821660009081526020818152604080832093909416825291909152205490565b60006102a9338484610519565b50600192915050565b60006102bf848484610586565b604080518082018252601881527f616d6f756e74206578636565647320616c6c6f77616e6365000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff87166000908152808252838120338083529252929092205461033b928792909161033691879061068b565b610519565b5060019392505050565b3360008181526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8716845290915281205490916102a991859061033690866106e5565b6000610393338585610586565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040516103f29291906109dc565b60405180910390a3833b1561033b576040517fa4c0ed3600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063a4c0ed36906104579033908790879060040161098b565b600060405180830381600087803b15801561047157600080fd5b505af1158015610485573d6000803e3d6000fd5b505050505060019392505050565b604080518082018252601e81527f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f000060208083019190915233600081815280835284812073ffffffffffffffffffffffffffffffffffffffff881682529092529281205490926102a992909186916103369190879061068b565b60006102a9338484610586565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152602081815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080518082018252601681527f616d6f756e7420657863656564732062616c616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff86166000908152600190915291909120546105ee91839061068b565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461062a90826106e5565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105799085815260200190565b600081848411156106d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c991906109c9565b60405180910390fd5b506106dd8385610a0d565b949350505050565b6000806106f283856109f5565b90508381101561075e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106c9565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461078957600080fd5b919050565b60006020828403121561079f578081fd5b61075e82610765565b600080604083850312156107ba578081fd5b6107c383610765565b91506107d160208401610765565b90509250929050565b6000806000606084860312156107ee578081fd5b6107f784610765565b925061080560208501610765565b9150604084013590509250925092565b60008060408385031215610827578182fd5b61083083610765565b946020939093013593505050565b600080600060608486031215610852578283fd5b61085b84610765565b925060208401359150604084013567ffffffffffffffff8082111561087e578283fd5b818601915086601f830112610891578283fd5b8135818111156108a3576108a3610a53565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156108e9576108e9610a53565b81604052828152896020848701011115610901578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008151808452815b818110156109475760208185018101518683018201520161092b565b818111156109585782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006109c06060830184610922565b95945050505050565b60208152600061075e6020830184610922565b8281526040602082015260006106dd6040830184610922565b60008219821115610a0857610a08610a24565b500190565b600082821015610a1f57610a1f610a24565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fdfea2646970667358221220fe6ab997cc9a03f47c32875c8763289fcfeb7227aeb59d5e6d2c600bdd35b1ee64736f6c63430008040033

Deployed Bytecode Sourcemap

984:6450:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1102:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5116:156;;;;;;:::i;:::-;;:::i;:::-;;;3592:14:3;;3585:22;3567:41;;3555:2;3540:18;5116:156:2;3522:92:3;1437:55:2;;1484:8;1437:55;;;;;4345:25:3;;;4333:2;4318:18;1437:55:2;4300:76:3;4372:289:2;;;;;;:::i;:::-;;:::i;1320:44::-;;1362:2;1320:44;;;;;4846:4:3;4834:17;;;4816:36;;4804:2;4789:18;1320:44:2;4771:87:3;5797:203:2;;;;;;:::i;:::-;;:::i;3661:391::-;;;;;;:::i;:::-;;:::i;2285:117::-;;;;;;:::i;:::-;2377:18;;2351:7;2377:18;;;:9;:18;;;;;;;2285:117;1210:46;;;;;;;;;;;;;;;;;;;;;6530:247;;;;;;:::i;:::-;;:::i;3108:162::-;;;;;;:::i;:::-;;:::i;2698:141::-;;;;;;:::i;:::-;2805:18;;;;2779:7;2805:18;;;;;;;;;;;:27;;;;;;;;;;;;;2698:141;5116:156;5191:4;5207:37;5216:10;5228:7;5237:6;5207:8;:37::i;:::-;-1:-1:-1;5261:4:2;5116:156;;;;:::o;4372:289::-;4470:4;4486:36;4496:6;4504:9;4515:6;4486:9;:36::i;:::-;4561:71;;;;;;;;;;;;;;;;;;;;:19;;;-1:-1:-1;4561:19:2;;;;;;;;;4549:10;4561:31;;;;;;;;;;4532:101;;4541:6;;4549:10;;4561:71;;4597:6;;4561:35;:71::i;:::-;4532:8;:101::i;:::-;-1:-1:-1;4650:4:2;4372:289;;;;;:::o;5797:203::-;5902:10;5877:4;5923:23;;;;;;;;;;;;:32;;;;;;;;;;5877:4;;5893:79;;5914:7;;5923:48;;5960:10;5923:36;:48::i;3661:391::-;3762:4;3778:40;3788:10;3800:9;3811:6;3778:9;:40::i;:::-;3854:9;3833:45;;3842:10;3833:45;;;3865:6;3873:4;3833:45;;;;;;;:::i;:::-;;;;;;;;7380:17;;7415:10;3897:119;;3937:68;;;;;:42;;;;;;:68;;3980:10;;3992:6;;4000:4;;3937:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4041:4:2;3661:391;;;;;:::o;6530:247::-;6661:87;;;;;;;;;;;;;;;;;;;;6640:10;6615:4;6661:23;;;;;;;;;;:32;;;;;;;;;;;6615:4;;6631:118;;6640:10;;6652:7;;6661:87;;:32;6698:15;;6661:36;:87::i;3108:162::-;3186:4;3202:40;3212:10;3224:9;3235:6;3202:9;:40::i;7082:174::-;7166:18;;;;:11;:18;;;;;;;;;;;:27;;;;;;;;;;;;;:36;;;7217:32;;4345:25:3;;;7217:32:2;;4318:18:3;7217:32:2;;;;;;;;7082:174;;;:::o;6787:285::-;6895:55;;;;;;;;;;;;;;;;;;;;:17;;;-1:-1:-1;6895:17:2;;;:9;:17;;;;;;;;:55;;6917:6;;6895:21;:55::i;:::-;6875:17;;;;;;;;:9;:17;;;;;;:75;;;;6983:20;;;;;;;:32;;7008:6;6983:24;:32::i;:::-;6960:20;;;;;;;;:9;:20;;;;;;;:55;;;;7030:35;;;;;;;;;;7058:6;4345:25:3;;4333:2;4318:18;;4300:76;3051:163:1;3137:7;3172:12;3164:6;;;;3156:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;3202:5:1;3206:1;3202;:5;:::i;:::-;3195:12;3051:163;-1:-1:-1;;;;3051:163:1:o;309:175::-;367:7;;398:5;402:1;398;:5;:::i;:::-;386:17;;426:1;421;:6;;413:46;;;;;;;4045:2:3;413:46:1;;;4027:21:3;4084:2;4064:18;;;4057:30;4123:29;4103:18;;;4096:57;4170:18;;413:46:1;4017:177:3;413:46:1;476:1;309:175;-1:-1:-1;;;309:175:1:o;14:196:3:-;82:20;;142:42;131:54;;121:65;;111:2;;200:1;197;190:12;111:2;63:147;;;:::o;215:196::-;274:6;327:2;315:9;306:7;302:23;298:32;295:2;;;348:6;340;333:22;295:2;376:29;395:9;376:29;:::i;416:270::-;484:6;492;545:2;533:9;524:7;520:23;516:32;513:2;;;566:6;558;551:22;513:2;594:29;613:9;594:29;:::i;:::-;584:39;;642:38;676:2;665:9;661:18;642:38;:::i;:::-;632:48;;503:183;;;;;:::o;691:338::-;768:6;776;784;837:2;825:9;816:7;812:23;808:32;805:2;;;858:6;850;843:22;805:2;886:29;905:9;886:29;:::i;:::-;876:39;;934:38;968:2;957:9;953:18;934:38;:::i;:::-;924:48;;1019:2;1008:9;1004:18;991:32;981:42;;795:234;;;;;:::o;1034:264::-;1102:6;1110;1163:2;1151:9;1142:7;1138:23;1134:32;1131:2;;;1184:6;1176;1169:22;1131:2;1212:29;1231:9;1212:29;:::i;:::-;1202:39;1288:2;1273:18;;;;1260:32;;-1:-1:-1;;;1121:177:3:o;1303:1167::-;1389:6;1397;1405;1458:2;1446:9;1437:7;1433:23;1429:32;1426:2;;;1479:6;1471;1464:22;1426:2;1507:29;1526:9;1507:29;:::i;:::-;1497:39;;1583:2;1572:9;1568:18;1555:32;1545:42;;1638:2;1627:9;1623:18;1610:32;1661:18;1702:2;1694:6;1691:14;1688:2;;;1723:6;1715;1708:22;1688:2;1766:6;1755:9;1751:22;1741:32;;1811:7;1804:4;1800:2;1796:13;1792:27;1782:2;;1838:6;1830;1823:22;1782:2;1879;1866:16;1901:2;1897;1894:10;1891:2;;;1907:18;;:::i;:::-;2041:2;2035:9;2103:4;2095:13;;1946:66;2091:22;;;2115:2;2087:31;2083:40;2071:53;;;2139:18;;;2159:22;;;2136:46;2133:2;;;2185:18;;:::i;:::-;2225:10;2221:2;2214:22;2260:2;2252:6;2245:18;2300:7;2295:2;2290;2286;2282:11;2278:20;2275:33;2272:2;;;2326:6;2318;2311:22;2272:2;2387;2382;2378;2374:11;2369:2;2361:6;2357:15;2344:46;2432:6;2427:2;2422;2414:6;2410:15;2406:24;2399:40;2458:6;2448:16;;;;;;;1416:1054;;;;;:::o;2475:534::-;2516:3;2554:5;2548:12;2581:6;2576:3;2569:19;2606:3;2618:162;2632:6;2629:1;2626:13;2618:162;;;2694:4;2750:13;;;2746:22;;2740:29;2722:11;;;2718:20;;2711:59;2647:12;2618:162;;;2798:6;2795:1;2792:13;2789:2;;;2864:3;2857:4;2848:6;2843:3;2839:16;2835:27;2828:40;2789:2;-1:-1:-1;2923:2:3;2911:15;2928:66;2907:88;2898:98;;;;2998:4;2894:109;;2524:485;-1:-1:-1;;2524:485:3:o;3014:408::-;3229:42;3221:6;3217:55;3206:9;3199:74;3309:6;3304:2;3293:9;3289:18;3282:34;3352:2;3347;3336:9;3332:18;3325:30;3180:4;3372:44;3412:2;3401:9;3397:18;3389:6;3372:44;:::i;:::-;3364:52;3189:233;-1:-1:-1;;;;;3189:233:3:o;3619:219::-;3768:2;3757:9;3750:21;3731:4;3788:44;3828:2;3817:9;3813:18;3805:6;3788:44;:::i;4381:288::-;4556:6;4545:9;4538:25;4599:2;4594;4583:9;4579:18;4572:30;4519:4;4619:44;4659:2;4648:9;4644:18;4636:6;4619:44;:::i;4863:128::-;4903:3;4934:1;4930:6;4927:1;4924:13;4921:2;;;4940:18;;:::i;:::-;-1:-1:-1;4976:9:3;;4911:80::o;4996:125::-;5036:4;5064:1;5061;5058:8;5055:2;;;5069:18;;:::i;:::-;-1:-1:-1;5106:9:3;;5045:76::o;5126:184::-;5178:77;5175:1;5168:88;5275:4;5272:1;5265:15;5299:4;5296:1;5289:15;5315:184;5367:77;5364:1;5357:88;5464:4;5461:1;5454:15;5488:4;5485:1;5478:15

Swarm Source

ipfs://fe6ab997cc9a03f47c32875c8763289fcfeb7227aeb59d5e6d2c600bdd35b1ee

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Varen's first product in partnership with Ren is a DEX-style swap UX for cross-chain swaps of any ERC-20 renASSET to that asset’s native chain (Dogecoin, BTC, LUNA, FIL, ZEC, etc). Future products will build out the cross-chain infrastructure of the Ren Labs dApp ecosystem.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.