ETH Price: $3,115.75 (+0.58%)
Gas: 3 Gwei

Contract

0xAD038Eb671c44b853887A7E32528FaB35dC5D710
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Permit198882942024-05-17 7:46:1141 hrs ago1715931971IN
Inverse Finance: DBR Token
0 ETH0.000203455.45423461
Approve198852602024-05-16 21:36:232 days ago1715895383IN
Inverse Finance: DBR Token
0 ETH0.000163063.52682923
Permit198771942024-05-15 18:32:113 days ago1715797931IN
Inverse Finance: DBR Token
0 ETH0.000518029.51980597
Approve198732392024-05-15 5:18:353 days ago1715750315IN
Inverse Finance: DBR Token
0 ETH0.00021414.6308011
Approve198491712024-05-11 20:27:117 days ago1715459231IN
Inverse Finance: DBR Token
0 ETH0.000162673.49754282
Approve198453432024-05-11 7:36:357 days ago1715412995IN
Inverse Finance: DBR Token
0 ETH0.000125875.19524923
Approve198453392024-05-11 7:35:477 days ago1715412947IN
Inverse Finance: DBR Token
0 ETH0.000124885.15457752
Approve198418612024-05-10 19:55:358 days ago1715370935IN
Inverse Finance: DBR Token
0 ETH0.000220947.58311565
Approve198370442024-05-10 3:46:478 days ago1715312807IN
Inverse Finance: DBR Token
0 ETH0.00020744.48700395
Approve198342202024-05-09 18:16:479 days ago1715278607IN
Inverse Finance: DBR Token
0 ETH0.000196454.24889225
Transfer198281482024-05-08 21:54:5910 days ago1715205299IN
Inverse Finance: DBR Token
0 ETH0.000175574.1859794
Approve198021692024-05-05 6:41:2313 days ago1714891283IN
Inverse Finance: DBR Token
0 ETH0.000246085.32245738
Approve197813702024-05-02 8:53:2316 days ago1714640003IN
Inverse Finance: DBR Token
0 ETH0.000292086.3206239
Transfer197777332024-05-01 20:40:5917 days ago1714596059IN
Inverse Finance: DBR Token
0 ETH0.000394587.27423929
Approve197715272024-04-30 23:53:3518 days ago1714521215IN
Inverse Finance: DBR Token
0 ETH0.000264475.72302699
Approve197711832024-04-30 22:44:2318 days ago1714517063IN
Inverse Finance: DBR Token
0 ETH0.000211067.24406853
Approve197699152024-04-30 18:28:1118 days ago1714501691IN
Inverse Finance: DBR Token
0 ETH0.0005455911.80019642
Approve197673052024-04-30 9:42:3518 days ago1714470155IN
Inverse Finance: DBR Token
0 ETH0.000294710.11468813
Approve197565162024-04-28 21:32:3520 days ago1714339955IN
Inverse Finance: DBR Token
0 ETH0.000264635.72651057
Approve197455442024-04-27 8:41:1121 days ago1714207271IN
Inverse Finance: DBR Token
0 ETH0.000248825.34979621
Approve197444242024-04-27 4:54:5921 days ago1714193699IN
Inverse Finance: DBR Token
0 ETH0.000226744.90669101
Approve197437982024-04-27 2:48:4721 days ago1714186127IN
Inverse Finance: DBR Token
0 ETH0.000251025.39696822
Approve197437502024-04-27 2:39:1121 days ago1714185551IN
Inverse Finance: DBR Token
0 ETH0.00023735.10208137
Approve197127342024-04-22 18:29:5926 days ago1713810599IN
Inverse Finance: DBR Token
0 ETH0.0006512114.08451024
Approve197073122024-04-22 0:17:5927 days ago1713745079IN
Inverse Finance: DBR Token
0 ETH0.000256945.55725768
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:
DolaBorrowingRights

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2022-12-10
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

/**
@title Dola Borrow Rights
@notice The DolaBorrowRights contract is a non-standard ERC20 token, that gives the right of holders to borrow DOLA at 0% interest.
 As a borrower takes on DOLA debt, their DBR balance will be exhausted at 1 DBR per 1 DOLA borrowed per year.
*/
contract DolaBorrowingRights {

    string public name;
    string public symbol;
    uint8 public constant decimals = 18;
    uint256 public _totalSupply;
    address public operator;
    address public pendingOperator;
    uint public totalDueTokensAccrued;
    uint public replenishmentPriceBps;
    mapping(address => uint256) public balances;
    mapping(address => mapping(address => uint256)) public allowance;
    uint256 internal immutable INITIAL_CHAIN_ID;
    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;
    mapping(address => uint256) public nonces;
    mapping (address => bool) public minters;
    mapping (address => bool) public markets;
    mapping (address => uint) public debts; // user => debt across all tracked markets
    mapping (address => uint) public dueTokensAccrued; // user => amount of due tokens accrued
    mapping (address => uint) public lastUpdated; // user => last update timestamp

    constructor(
        uint _replenishmentPriceBps,
        string memory _name,
        string memory _symbol,
        address _operator
    ) {
        replenishmentPriceBps = _replenishmentPriceBps;
        name = _name;
        symbol = _symbol;
        operator = _operator;
        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    modifier onlyOperator {
        require(msg.sender == operator, "ONLY OPERATOR");
        _;
    }
    
    /**
    @notice Sets pending operator of the contract. Operator role must be claimed by the new oprator. Only callable by Operator.
    @param newOperator_ The address of the newOperator
    */
    function setPendingOperator(address newOperator_) public onlyOperator {
        pendingOperator = newOperator_;
    }

    /**
    @notice Sets the replenishment price in basis points. Replenishment price denotes the increase in DOLA debt upon forced replenishments.
     At 10000, the cost of replenishing 1 DBR is 1 DOLA in debt. Only callable by Operator.
    @param newReplenishmentPriceBps_ The new replen
    */
    function setReplenishmentPriceBps(uint newReplenishmentPriceBps_) public onlyOperator {
        require(newReplenishmentPriceBps_ > 0, "replenishment price must be over 0");
        require(newReplenishmentPriceBps_ <= 1_000_000, "Replenishment price cannot exceed 100 DOLA per DBR");
        replenishmentPriceBps = newReplenishmentPriceBps_;
    }
    
    /**
    @notice claims the Operator role if set as pending operator.
    */
    function claimOperator() public {
        require(msg.sender == pendingOperator, "ONLY PENDING OPERATOR");
        operator = pendingOperator;
        pendingOperator = address(0);
        emit ChangeOperator(operator);
    }

    /**
    @notice Add a minter to the set of addresses allowed to mint DBR tokens. Only callable by Operator.
    @param minter_ The address of the new minter.
    */
    function addMinter(address minter_) public onlyOperator {
        minters[minter_] = true;
        emit AddMinter(minter_);
    }

    /**
    @notice Removes a minter from the set of addresses allowe to mint DBR tokens. Only callable by Operator.
    @param minter_ The address to be removed from the minter set.
    */
    function removeMinter(address minter_) public onlyOperator {
        minters[minter_] = false;
        emit RemoveMinter(minter_);
    }
    /**
    @notice Adds a market to the set of active markets. Only callable by Operator.
    @dev markets can be added but cannot be removed. A removed market would result in unrepayable debt for some users.
    @param market_ The address of the new market contract to be added.
    */
    function addMarket(address market_) public onlyOperator {
        markets[market_] = true;
        emit AddMarket(market_);
    }

    /**
    @notice Get the total supply of DBR tokens.
    @dev The total supply is calculated as the difference between total DBR minted and total DBR accrued.
    @return uint representing the total supply of DBR.
    */
    function totalSupply() public view returns (uint) {
        if(totalDueTokensAccrued > _totalSupply) return 0;
        return _totalSupply - totalDueTokensAccrued;
    }

    /**
    @notice Get the DBR balance of an address. Will return 0 if the user has zero DBR or a deficit.
    @dev The balance of a user is calculated as the difference between the user's balance and the user's accrued DBR debt + due DBR debt.
    @param user Address of the user.
    @return uint representing the balance of the user.
    */
    function balanceOf(address user) public view returns (uint) {
        uint debt = debts[user];
        uint accrued = (block.timestamp - lastUpdated[user]) * debt / 365 days;
        if(dueTokensAccrued[user] + accrued > balances[user]) return 0;
        return balances[user] - dueTokensAccrued[user] - accrued;
    }

    /**
    @notice Get the DBR deficit of an address. Will return 0 if th user has zero DBR or more.
    @dev The deficit of a user is calculated as the difference between the user's accrued DBR deb + due DBR debt and their balance.
    @param user Address of the user.
    @return uint representing the deficit of the user.
    */
    function deficitOf(address user) public view returns (uint) {
        uint debt = debts[user];
        uint accrued = (block.timestamp - lastUpdated[user]) * debt / 365 days;
        if(dueTokensAccrued[user] + accrued < balances[user]) return 0;
        return dueTokensAccrued[user] + accrued - balances[user];
    }
    
    /**
    @notice Get the signed DBR balance of an address.
    @dev This function will revert if a user has a balance of more than 2^255-1 DBR
    @param user Address of the user.
    @return Returns a signed int of the user's balance
    */
    function signedBalanceOf(address user) public view returns (int) {
        uint debt = debts[user];
        uint accrued = (block.timestamp - lastUpdated[user]) * debt / 365 days;
        return int(balances[user]) - int(dueTokensAccrued[user]) - int(accrued);
    }

    /**
    @notice Approves spender to spend amount of DBR on behalf of the message sender.
    @param spender Address of the spender to be approved
    @param amount Amount to be approved to spend
    @return Always returns true, will revert if not successful.
    */
    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    /**
    @notice Transfers amount to address to from message sender.
    @param to The address to transfer to
    @param amount The amount of DBR to transfer
    @return Always returns true, will revert if not successful.
    */
    function transfer(address to, uint256 amount) public virtual returns (bool) {
        require(balanceOf(msg.sender) >= amount, "Insufficient balance");
        balances[msg.sender] -= amount;
        unchecked {
            balances[to] += amount;
        }
        emit Transfer(msg.sender, to, amount);
        return true;
    }

    /**
    @notice Transfer amount of DBR  on behalf of address from to address to. Message sender must have a sufficient allowance from the from address.
    @dev Allowance is reduced by the amount transferred.
    @param from Address to transfer from.
    @param to Address to transfer to.
    @param amount Amount of DBR to transfer.
    @return Always returns true, will revert if not successful.
    */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender];
        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;
        require(balanceOf(from) >= amount, "Insufficient balance");
        balances[from] -= amount;
        unchecked {
            balances[to] += amount;
        }
        emit Transfer(from, to, amount);
        return true;
    }

    /**
    @notice Permits an address to spend on behalf of another address via a signed message.
    @dev Can be bundled with a transferFrom call, to reduce transaction load on users.
    @param owner Address of the owner permitting the spending
    @param spender Address allowed to spend on behalf of owner.
    @param value Amount to be allowed to spend.
    @param deadline Timestamp after which the signed message is no longer valid.
    @param v The v param of the ECDSA signature
    @param r The r param of the ECDSA signature
    @param s The s param of the ECDSA signature
    */
    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );
            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");
            allowance[recoveredAddress][spender] = value;
        }
        emit Approval(owner, spender, value);
    }

    /**
    @notice Function for invalidating the nonce of a signed message.
    */
    function invalidateNonce() public {
        nonces[msg.sender]++;
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /**
    @notice Accrue due DBR debt of user
    @dev DBR debt is accrued at a rate of 1 DBR per 1 DOLA of debt per year.
    @param user The address of the user to accrue DBR debt to.
    */
    function accrueDueTokens(address user) public {
        uint debt = debts[user];
        if(lastUpdated[user] == block.timestamp) return;
        uint accrued = (block.timestamp - lastUpdated[user]) * debt / 365 days;
        if(accrued > 0 || lastUpdated[user] == 0){
            dueTokensAccrued[user] += accrued;
            totalDueTokensAccrued += accrued;
            lastUpdated[user] = block.timestamp;
            emit Transfer(user, address(0), accrued);
        }
    }

    /**
    @notice Function to be called by markets when a borrow occurs.
    @dev Accrues due tokens on behalf of the user, before increasing their debt.
    @param user The address of the borrower
    @param additionalDebt The additional amount of DOLA the user is borrowing
    */
    function onBorrow(address user, uint additionalDebt) public {
        require(markets[msg.sender], "Only markets can call onBorrow");
        accrueDueTokens(user);
        require(deficitOf(user) == 0, "DBR Deficit");
        debts[user] += additionalDebt;
    }

    /**
    @notice Function to be called by markets when a repayment occurs.
    @dev Accrues due tokens on behalf of the user, before reducing their debt.
    @param user The address of the borrower having their debt repaid
    @param repaidDebt The amount of DOLA repaid
    */
    function onRepay(address user, uint repaidDebt) public {
        require(markets[msg.sender], "Only markets can call onRepay");
        accrueDueTokens(user);
        debts[user] -= repaidDebt;
    }

    /**
    @notice Function to be called by markets when a force replenish occurs. This function can only be called if the user has a DBR deficit.
    @dev Accrues due tokens on behalf of the user, before increasing their debt by the replenishment price and minting them new DBR.
    @param user The user to be force replenished.
    @param amount The amount of DBR the user will be force replenished.
    */
    function onForceReplenish(address user, address replenisher, uint amount, uint replenisherReward) public {
        require(markets[msg.sender], "Only markets can call onForceReplenish");
        uint deficit = deficitOf(user);
        require(deficit > 0, "No deficit");
        require(deficit >= amount, "Amount > deficit");
        uint replenishmentCost = amount * replenishmentPriceBps / 10000;
        accrueDueTokens(user);
        debts[user] += replenishmentCost;
        _mint(user, amount);
        emit ForceReplenish(user, replenisher, msg.sender, amount, replenishmentCost, replenisherReward);
    }

    /**
    @notice Function for burning DBR from message sender, reducing supply.
    @param amount Amount to be burned
    */
    function burn(uint amount) public {
        _burn(msg.sender, amount);
    }

    /**
    @notice Function for minting new DBR, increasing supply. Only callable by minters and the operator.
    @param to Address to mint DBR to.
    @param amount Amount of DBR to mint.
    */
    function mint(address to, uint amount) public {
        require(minters[msg.sender] == true || msg.sender == operator, "ONLY MINTERS OR OPERATOR");
        _mint(to, amount);
    }

    /**
    @notice Internal function for minting DBR.
    @param to Address to mint DBR to.
    @param amount Amount of DBR to mint.
    */
    function _mint(address to, uint256 amount) internal virtual {
        _totalSupply += amount;
        unchecked {
            balances[to] += amount;
        }
        emit Transfer(address(0), to, amount);
    }

    /**
    @notice Internal function for burning DBR.
    @param from Address to burn DBR from.
    @param amount Amount of DBR to be burned.
    */
    function _burn(address from, uint256 amount) internal virtual {
        require(balanceOf(from) >= amount, "Insufficient balance");
        balances[from] -= amount;
        unchecked {
            _totalSupply -= amount;
        }
        emit Transfer(from, address(0), amount);
    }

    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);
    event AddMinter(address indexed minter);
    event RemoveMinter(address indexed minter);
    event AddMarket(address indexed market);
    event ChangeOperator(address indexed newOperator);
    event ForceReplenish(address indexed account, address indexed replenisher, address indexed market, uint deficit, uint replenishmentCost, uint replenisherReward);

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_replenishmentPriceBps","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"market","type":"address"}],"name":"AddMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"AddMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"ChangeOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"replenisher","type":"address"},{"indexed":true,"internalType":"address","name":"market","type":"address"},{"indexed":false,"internalType":"uint256","name":"deficit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"replenishmentCost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"replenisherReward","type":"uint256"}],"name":"ForceReplenish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"RemoveMinter","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"accrueDueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market_","type":"address"}],"name":"addMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"debts","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":"user","type":"address"}],"name":"deficitOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dueTokensAccrued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"invalidateNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastUpdated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"markets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"additionalDebt","type":"uint256"}],"name":"onBorrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"replenisher","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"replenisherReward","type":"uint256"}],"name":"onForceReplenish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"repaidDebt","type":"uint256"}],"name":"onRepay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter_","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"replenishmentPriceBps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"setPendingOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newReplenishmentPriceBps_","type":"uint256"}],"name":"setReplenishmentPriceBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"signedBalanceOf","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDueTokensAccrued","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"amount","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":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60c06040523480156200001157600080fd5b5060405162001f5f38038062001f5f8339810160408190526200003491620002ab565b600684905582516200004e90600090602086019062000138565b5081516200006490600190602085019062000138565b50600380546001600160a01b0319166001600160a01b038316179055466080526200008e6200009c565b60a052506200042092505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620000d091906200037d565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b828054620001469062000341565b90600052602060002090601f0160209004810192826200016a5760008555620001b5565b82601f106200018557805160ff1916838001178555620001b5565b82800160010185558215620001b5579182015b82811115620001b557825182559160200191906001019062000198565b50620001c3929150620001c7565b5090565b5b80821115620001c35760008155600101620001c8565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200020657600080fd5b81516001600160401b0380821115620002235762000223620001de565b604051601f8301601f19908116603f011681019082821181831017156200024e576200024e620001de565b816040528381526020925086838588010111156200026b57600080fd5b600091505b838210156200028f578582018301518183018401529082019062000270565b83821115620002a15760008385830101525b9695505050505050565b60008060008060808587031215620002c257600080fd5b845160208601519094506001600160401b0380821115620002e257600080fd5b620002f088838901620001f4565b945060408701519150808211156200030757600080fd5b506200031687828801620001f4565b606087015190935090506001600160a01b03811681146200033657600080fd5b939692955090935050565b600181811c908216806200035657607f821691505b6020821081036200037757634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806200039a57607f831692505b60208084108203620003ba57634e487b7160e01b86526022600452602486fd5b818015620003d15760018114620003e35762000412565b60ff1986168952848901965062000412565b60008a81526020902060005b868110156200040a5781548b820152908501908301620003ef565b505084890196505b509498975050505050505050565b60805160a051611b19620004466000396000610996015260006109660152611b196000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c806370a0823111610130578063ac7e534e116100b8578063dcdf770f1161007c578063dcdf770f146104ed578063dd62ed3e146104f6578063f46eccc414610521578063f7f11fb714610544578063fffdfb381461055757600080fd5b8063ac7e534e14610499578063b2c08775146104ac578063d505accf146104bf578063d54e65fb146104d2578063d8d2c648146104da57600080fd5b806393e30633116100ff57806393e306331461044f57806395d89b4114610462578063983b2d561461046a578063a10f84cb1461047d578063a9059cbb1461048657600080fd5b806370a08231146103e65780637ecebe00146103f95780638200b331146104195780638e8f294b1461042c57600080fd5b80633092afd5116101be57806340c10f191161018257806340c10f191461037a57806342966c681461038d578063570ca735146103a05780635a57b46f146103cb5780636866c625146103d357600080fd5b80633092afd514610329578063313ce5671461033c5780633644e5151461035657806336459f041461035e5780633eaaf86b1461037157600080fd5b806318160ddd1161020557806318160ddd146102bb57806323b30572146102c357806323b872dd146102d657806327e235e3146102e95780632ecd4e7d1461030957600080fd5b806306fdde0314610237578063095ea7b3146102555780630a6f93e614610278578063143d4e49146102a6575b600080fd5b61023f610577565b60405161024c91906116c1565b60405180910390f35b610268610263366004611732565b610605565b604051901515815260200161024c565b61029861028636600461175c565b600e6020526000908152604090205481565b60405190815260200161024c565b6102b96102b436600461175c565b610671565b005b6102986106c6565b6102b96102d136600461177e565b6106ef565b6102686102e4366004611797565b6107e7565b6102986102f736600461175c565b60076020526000908152604090205481565b61029861031736600461175c565b600c6020526000908152604090205481565b6102b961033736600461175c565b6108ef565b610344601281565b60405160ff909116815260200161024c565b610298610962565b61029861036c36600461175c565b6109b8565b61029860025481565b6102b9610388366004611732565b610a8a565b6102b961039b36600461177e565b610b11565b6003546103b3906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b6102b9610b1e565b6102b96103e136600461175c565b610b40565b6102986103f436600461175c565b610c65565b61029861040736600461175c565b60096020526000908152604090205481565b61029861042736600461175c565b610d25565b61026861043a36600461175c565b600b6020526000908152604090205460ff1681565b6102b961045d36600461175c565b610daf565b61023f610e25565b6102b961047836600461175c565b610e32565b61029860065481565b610268610494366004611732565b610ea8565b6004546103b3906001600160a01b031681565b6102b96104ba3660046117d3565b610f36565b6102b96104cd366004611815565b6110ec565b6102b9611330565b6102b96104e8366004611732565b6113d6565b61029860055481565b610298610504366004611888565b600860209081526000928352604080842090915290825290205481565b61026861052f36600461175c565b600a6020526000908152604090205460ff1681565b6102b9610552366004611732565b61146f565b61029861056536600461175c565b600d6020526000908152604090205481565b60008054610584906118bb565b80601f01602080910402602001604051908101604052809291908181526020018280546105b0906118bb565b80156105fd5780601f106105d2576101008083540402835291602001916105fd565b820191906000526020600020905b8154815290600101906020018083116105e057829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106609086815260200190565b60405180910390a350600192915050565b6003546001600160a01b031633146106a45760405162461bcd60e51b815260040161069b906118f5565b60405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600060025460055411156106da5750600090565b6005546002546106ea9190611932565b905090565b6003546001600160a01b031633146107195760405162461bcd60e51b815260040161069b906118f5565b600081116107745760405162461bcd60e51b815260206004820152602260248201527f7265706c656e6973686d656e74207072696365206d757374206265206f766572604482015261020360f41b606482015260840161069b565b620f42408111156107e25760405162461bcd60e51b815260206004820152603260248201527f5265706c656e6973686d656e742070726963652063616e6e6f742065786365656044820152713210189818102227a620903832b91022212960711b606482015260840161069b565b600655565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001981146108435761081e8382611932565b6001600160a01b03861660009081526008602090815260408083203384529091529020555b8261084d86610c65565b101561086b5760405162461bcd60e51b815260040161069b90611949565b6001600160a01b03851660009081526007602052604081208054859290610893908490611932565b90915550506001600160a01b0380851660008181526007602052604090819020805487019055519091871690600080516020611ac4833981519152906108dc9087815260200190565b60405180910390a3506001949350505050565b6003546001600160a01b031633146109195760405162461bcd60e51b815260040161069b906118f5565b6001600160a01b0381166000818152600a6020526040808220805460ff19169055517f2f91b591fc56ac0917953ad01ec225524ee5ef0555213e4c8a9d8c9728ee7ffb9190a250565b60007f00000000000000000000000000000000000000000000000000000000000000004614610993576106ea611543565b507f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205482906301e133809083906109f09042611932565b6109fa9190611977565b610a049190611996565b6001600160a01b038516600090815260076020908152604080832054600d9092529091205491925090610a389083906119b8565b1015610a48575060009392505050565b6001600160a01b038416600090815260076020908152604080832054600d90925290912054610a789083906119b8565b610a829190611932565b949350505050565b336000908152600a602052604090205460ff16151560011480610ab757506003546001600160a01b031633145b610b035760405162461bcd60e51b815260206004820152601860248201527f4f4e4c59204d494e54455253204f52204f50455241544f520000000000000000604482015260640161069b565b610b0d82826115dd565b5050565b610b1b3382611637565b50565b336000908152600960205260408120805491610b39836119d0565b9190505550565b6001600160a01b0381166000908152600c6020908152604080832054600e90925290912054429003610b70575050565b6001600160a01b0382166000908152600e60205260408120546301e13380908390610b9b9042611932565b610ba59190611977565b610baf9190611996565b90506000811180610bd657506001600160a01b0383166000908152600e6020526040902054155b15610c60576001600160a01b0383166000908152600d602052604081208054839290610c039084906119b8565b925050819055508060056000828254610c1c91906119b8565b90915550506001600160a01b0383166000818152600e6020908152604080832042905551848152919291600080516020611ac4833981519152910160405180910390a35b505050565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205482906301e13380908390610c9d9042611932565b610ca79190611977565b610cb19190611996565b6001600160a01b038516600090815260076020908152604080832054600d9092529091205491925090610ce59083906119b8565b1115610cf5575060009392505050565b6001600160a01b0384166000908152600d60209081526040808320546007909252909120548291610a7891611932565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205482906301e13380908390610d5d9042611932565b610d679190611977565b610d719190611996565b6001600160a01b0385166000908152600d60209081526040808320546007909252909120549192508291610da591906119e9565b610a8291906119e9565b6003546001600160a01b03163314610dd95760405162461bcd60e51b815260040161069b906118f5565b6001600160a01b0381166000818152600b6020526040808220805460ff19166001179055517fc3dfb88ee5301cecf05761fb2728064e5b641524346ae69b9ba80394631bf11f9190a250565b60018054610584906118bb565b6003546001600160a01b03163314610e5c5760405162461bcd60e51b815260040161069b906118f5565b6001600160a01b0381166000818152600a6020526040808220805460ff19166001179055517f16baa937b08d58713325f93ac58b8a9369a4359bbefb4957d6d9b402735722ab9190a250565b600081610eb433610c65565b1015610ed25760405162461bcd60e51b815260040161069b90611949565b3360009081526007602052604081208054849290610ef1908490611932565b90915550506001600160a01b03831660008181526007602052604090819020805485019055513390600080516020611ac4833981519152906106609086815260200190565b336000908152600b602052604090205460ff16610fa45760405162461bcd60e51b815260206004820152602660248201527f4f6e6c79206d61726b6574732063616e2063616c6c206f6e466f7263655265706044820152650d8cadcd2e6d60d31b606482015260840161069b565b6000610faf856109b8565b905060008111610fee5760405162461bcd60e51b815260206004820152600a602482015269139bc81919599a58da5d60b21b604482015260640161069b565b828110156110315760405162461bcd60e51b815260206004820152601060248201526f105b5bdd5b9d080f881919599a58da5d60821b604482015260640161069b565b6000612710600654856110449190611977565b61104e9190611996565b905061105986610b40565b6001600160a01b0386166000908152600c6020526040812080548392906110819084906119b8565b90915550611091905086856115dd565b604080518581526020810183905290810184905233906001600160a01b0387811691908916907f6a03700072ec60131e7e4ff249dad34d458e1e5785dbfa8146b2265997fbf6869060600160405180910390a4505050505050565b4284101561113c5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161069b565b60006001611148610962565b6001600160a01b038a811660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015611254573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061128a5750876001600160a01b0316816001600160a01b0316145b6112c75760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b604482015260640161069b565b6001600160a01b0390811660009081526008602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6004546001600160a01b031633146113825760405162461bcd60e51b815260206004820152601560248201527427a7262c902822a72224a7239027a822a920aa27a960591b604482015260640161069b565b60048054600380546001600160a01b0383166001600160a01b031991821681179092559091169091556040517f8eb831fe42156caaf4721a87ad40c6e662b893dbeee76d7a3ed2564a318b091c90600090a2565b336000908152600b602052604090205460ff166114355760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206d61726b6574732063616e2063616c6c206f6e5265706179000000604482015260640161069b565b61143e82610b40565b6001600160a01b0382166000908152600c602052604081208054839290611466908490611932565b90915550505050565b336000908152600b602052604090205460ff166114ce5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206d61726b6574732063616e2063616c6c206f6e426f72726f770000604482015260640161069b565b6114d782610b40565b6114e0826109b8565b1561151b5760405162461bcd60e51b815260206004820152600b60248201526a111094881119599a58da5d60aa1b604482015260640161069b565b6001600160a01b0382166000908152600c6020526040812080548392906114669084906119b8565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516115759190611a28565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546115ef91906119b8565b90915550506001600160a01b038216600081815260076020908152604080832080548601905551848152600080516020611ac483398151915291015b60405180910390a35050565b8061164183610c65565b101561165f5760405162461bcd60e51b815260040161069b90611949565b6001600160a01b03821660009081526007602052604081208054839290611687908490611932565b90915550506002805482900390556040518181526000906001600160a01b03841690600080516020611ac48339815191529060200161162b565b600060208083528351808285015260005b818110156116ee578581018301518582016040015282016116d2565b81811115611700576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461172d57600080fd5b919050565b6000806040838503121561174557600080fd5b61174e83611716565b946020939093013593505050565b60006020828403121561176e57600080fd5b61177782611716565b9392505050565b60006020828403121561179057600080fd5b5035919050565b6000806000606084860312156117ac57600080fd5b6117b584611716565b92506117c360208501611716565b9150604084013590509250925092565b600080600080608085870312156117e957600080fd5b6117f285611716565b935061180060208601611716565b93969395505050506040820135916060013590565b600080600080600080600060e0888a03121561183057600080fd5b61183988611716565b965061184760208901611716565b95506040880135945060608801359350608088013560ff8116811461186b57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561189b57600080fd5b6118a483611716565b91506118b260208401611716565b90509250929050565b600181811c908216806118cf57607f821691505b6020821081036118ef57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600d908201526c27a7262c9027a822a920aa27a960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156119445761194461191c565b500390565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60008160001904831182151516156119915761199161191c565b500290565b6000826119b357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156119cb576119cb61191c565b500190565b6000600182016119e2576119e261191c565b5060010190565b60008083128015600160ff1b850184121615611a0757611a0761191c565b6001600160ff1b0384018313811615611a2257611a2261191c565b50500390565b600080835481600182811c915080831680611a4457607f831692505b60208084108203611a6357634e487b7160e01b86526022600452602486fd5b818015611a775760018114611a8857611ab5565b60ff19861689528489019650611ab5565b60008a81526020902060005b86811015611aad5781548b820152908501908301611a94565b505084890196505b50949897505050505050505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203b6dcf74dcba5952c94f9204ff21e7856d27346b72b6c0f7426e61aaa65331f464736f6c634300080d003300000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b0000000000000000000000000000000000000000000000000000000000000014446f6c6120426f72726f77696e6720526967687400000000000000000000000000000000000000000000000000000000000000000000000000000000000000034442520000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102325760003560e01c806370a0823111610130578063ac7e534e116100b8578063dcdf770f1161007c578063dcdf770f146104ed578063dd62ed3e146104f6578063f46eccc414610521578063f7f11fb714610544578063fffdfb381461055757600080fd5b8063ac7e534e14610499578063b2c08775146104ac578063d505accf146104bf578063d54e65fb146104d2578063d8d2c648146104da57600080fd5b806393e30633116100ff57806393e306331461044f57806395d89b4114610462578063983b2d561461046a578063a10f84cb1461047d578063a9059cbb1461048657600080fd5b806370a08231146103e65780637ecebe00146103f95780638200b331146104195780638e8f294b1461042c57600080fd5b80633092afd5116101be57806340c10f191161018257806340c10f191461037a57806342966c681461038d578063570ca735146103a05780635a57b46f146103cb5780636866c625146103d357600080fd5b80633092afd514610329578063313ce5671461033c5780633644e5151461035657806336459f041461035e5780633eaaf86b1461037157600080fd5b806318160ddd1161020557806318160ddd146102bb57806323b30572146102c357806323b872dd146102d657806327e235e3146102e95780632ecd4e7d1461030957600080fd5b806306fdde0314610237578063095ea7b3146102555780630a6f93e614610278578063143d4e49146102a6575b600080fd5b61023f610577565b60405161024c91906116c1565b60405180910390f35b610268610263366004611732565b610605565b604051901515815260200161024c565b61029861028636600461175c565b600e6020526000908152604090205481565b60405190815260200161024c565b6102b96102b436600461175c565b610671565b005b6102986106c6565b6102b96102d136600461177e565b6106ef565b6102686102e4366004611797565b6107e7565b6102986102f736600461175c565b60076020526000908152604090205481565b61029861031736600461175c565b600c6020526000908152604090205481565b6102b961033736600461175c565b6108ef565b610344601281565b60405160ff909116815260200161024c565b610298610962565b61029861036c36600461175c565b6109b8565b61029860025481565b6102b9610388366004611732565b610a8a565b6102b961039b36600461177e565b610b11565b6003546103b3906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b6102b9610b1e565b6102b96103e136600461175c565b610b40565b6102986103f436600461175c565b610c65565b61029861040736600461175c565b60096020526000908152604090205481565b61029861042736600461175c565b610d25565b61026861043a36600461175c565b600b6020526000908152604090205460ff1681565b6102b961045d36600461175c565b610daf565b61023f610e25565b6102b961047836600461175c565b610e32565b61029860065481565b610268610494366004611732565b610ea8565b6004546103b3906001600160a01b031681565b6102b96104ba3660046117d3565b610f36565b6102b96104cd366004611815565b6110ec565b6102b9611330565b6102b96104e8366004611732565b6113d6565b61029860055481565b610298610504366004611888565b600860209081526000928352604080842090915290825290205481565b61026861052f36600461175c565b600a6020526000908152604090205460ff1681565b6102b9610552366004611732565b61146f565b61029861056536600461175c565b600d6020526000908152604090205481565b60008054610584906118bb565b80601f01602080910402602001604051908101604052809291908181526020018280546105b0906118bb565b80156105fd5780601f106105d2576101008083540402835291602001916105fd565b820191906000526020600020905b8154815290600101906020018083116105e057829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106609086815260200190565b60405180910390a350600192915050565b6003546001600160a01b031633146106a45760405162461bcd60e51b815260040161069b906118f5565b60405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600060025460055411156106da5750600090565b6005546002546106ea9190611932565b905090565b6003546001600160a01b031633146107195760405162461bcd60e51b815260040161069b906118f5565b600081116107745760405162461bcd60e51b815260206004820152602260248201527f7265706c656e6973686d656e74207072696365206d757374206265206f766572604482015261020360f41b606482015260840161069b565b620f42408111156107e25760405162461bcd60e51b815260206004820152603260248201527f5265706c656e6973686d656e742070726963652063616e6e6f742065786365656044820152713210189818102227a620903832b91022212960711b606482015260840161069b565b600655565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001981146108435761081e8382611932565b6001600160a01b03861660009081526008602090815260408083203384529091529020555b8261084d86610c65565b101561086b5760405162461bcd60e51b815260040161069b90611949565b6001600160a01b03851660009081526007602052604081208054859290610893908490611932565b90915550506001600160a01b0380851660008181526007602052604090819020805487019055519091871690600080516020611ac4833981519152906108dc9087815260200190565b60405180910390a3506001949350505050565b6003546001600160a01b031633146109195760405162461bcd60e51b815260040161069b906118f5565b6001600160a01b0381166000818152600a6020526040808220805460ff19169055517f2f91b591fc56ac0917953ad01ec225524ee5ef0555213e4c8a9d8c9728ee7ffb9190a250565b60007f00000000000000000000000000000000000000000000000000000000000000014614610993576106ea611543565b507fd70c5a91c034ae556adea4a4208575466a13f1986ad8d938d1032fd48eb07e7690565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205482906301e133809083906109f09042611932565b6109fa9190611977565b610a049190611996565b6001600160a01b038516600090815260076020908152604080832054600d9092529091205491925090610a389083906119b8565b1015610a48575060009392505050565b6001600160a01b038416600090815260076020908152604080832054600d90925290912054610a789083906119b8565b610a829190611932565b949350505050565b336000908152600a602052604090205460ff16151560011480610ab757506003546001600160a01b031633145b610b035760405162461bcd60e51b815260206004820152601860248201527f4f4e4c59204d494e54455253204f52204f50455241544f520000000000000000604482015260640161069b565b610b0d82826115dd565b5050565b610b1b3382611637565b50565b336000908152600960205260408120805491610b39836119d0565b9190505550565b6001600160a01b0381166000908152600c6020908152604080832054600e90925290912054429003610b70575050565b6001600160a01b0382166000908152600e60205260408120546301e13380908390610b9b9042611932565b610ba59190611977565b610baf9190611996565b90506000811180610bd657506001600160a01b0383166000908152600e6020526040902054155b15610c60576001600160a01b0383166000908152600d602052604081208054839290610c039084906119b8565b925050819055508060056000828254610c1c91906119b8565b90915550506001600160a01b0383166000818152600e6020908152604080832042905551848152919291600080516020611ac4833981519152910160405180910390a35b505050565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205482906301e13380908390610c9d9042611932565b610ca79190611977565b610cb19190611996565b6001600160a01b038516600090815260076020908152604080832054600d9092529091205491925090610ce59083906119b8565b1115610cf5575060009392505050565b6001600160a01b0384166000908152600d60209081526040808320546007909252909120548291610a7891611932565b6001600160a01b0381166000908152600c6020908152604080832054600e90925282205482906301e13380908390610d5d9042611932565b610d679190611977565b610d719190611996565b6001600160a01b0385166000908152600d60209081526040808320546007909252909120549192508291610da591906119e9565b610a8291906119e9565b6003546001600160a01b03163314610dd95760405162461bcd60e51b815260040161069b906118f5565b6001600160a01b0381166000818152600b6020526040808220805460ff19166001179055517fc3dfb88ee5301cecf05761fb2728064e5b641524346ae69b9ba80394631bf11f9190a250565b60018054610584906118bb565b6003546001600160a01b03163314610e5c5760405162461bcd60e51b815260040161069b906118f5565b6001600160a01b0381166000818152600a6020526040808220805460ff19166001179055517f16baa937b08d58713325f93ac58b8a9369a4359bbefb4957d6d9b402735722ab9190a250565b600081610eb433610c65565b1015610ed25760405162461bcd60e51b815260040161069b90611949565b3360009081526007602052604081208054849290610ef1908490611932565b90915550506001600160a01b03831660008181526007602052604090819020805485019055513390600080516020611ac4833981519152906106609086815260200190565b336000908152600b602052604090205460ff16610fa45760405162461bcd60e51b815260206004820152602660248201527f4f6e6c79206d61726b6574732063616e2063616c6c206f6e466f7263655265706044820152650d8cadcd2e6d60d31b606482015260840161069b565b6000610faf856109b8565b905060008111610fee5760405162461bcd60e51b815260206004820152600a602482015269139bc81919599a58da5d60b21b604482015260640161069b565b828110156110315760405162461bcd60e51b815260206004820152601060248201526f105b5bdd5b9d080f881919599a58da5d60821b604482015260640161069b565b6000612710600654856110449190611977565b61104e9190611996565b905061105986610b40565b6001600160a01b0386166000908152600c6020526040812080548392906110819084906119b8565b90915550611091905086856115dd565b604080518581526020810183905290810184905233906001600160a01b0387811691908916907f6a03700072ec60131e7e4ff249dad34d458e1e5785dbfa8146b2265997fbf6869060600160405180910390a4505050505050565b4284101561113c5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161069b565b60006001611148610962565b6001600160a01b038a811660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015611254573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061128a5750876001600160a01b0316816001600160a01b0316145b6112c75760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b604482015260640161069b565b6001600160a01b0390811660009081526008602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6004546001600160a01b031633146113825760405162461bcd60e51b815260206004820152601560248201527427a7262c902822a72224a7239027a822a920aa27a960591b604482015260640161069b565b60048054600380546001600160a01b0383166001600160a01b031991821681179092559091169091556040517f8eb831fe42156caaf4721a87ad40c6e662b893dbeee76d7a3ed2564a318b091c90600090a2565b336000908152600b602052604090205460ff166114355760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c79206d61726b6574732063616e2063616c6c206f6e5265706179000000604482015260640161069b565b61143e82610b40565b6001600160a01b0382166000908152600c602052604081208054839290611466908490611932565b90915550505050565b336000908152600b602052604090205460ff166114ce5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206d61726b6574732063616e2063616c6c206f6e426f72726f770000604482015260640161069b565b6114d782610b40565b6114e0826109b8565b1561151b5760405162461bcd60e51b815260206004820152600b60248201526a111094881119599a58da5d60aa1b604482015260640161069b565b6001600160a01b0382166000908152600c6020526040812080548392906114669084906119b8565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516115759190611a28565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b80600260008282546115ef91906119b8565b90915550506001600160a01b038216600081815260076020908152604080832080548601905551848152600080516020611ac483398151915291015b60405180910390a35050565b8061164183610c65565b101561165f5760405162461bcd60e51b815260040161069b90611949565b6001600160a01b03821660009081526007602052604081208054839290611687908490611932565b90915550506002805482900390556040518181526000906001600160a01b03841690600080516020611ac48339815191529060200161162b565b600060208083528351808285015260005b818110156116ee578581018301518582016040015282016116d2565b81811115611700576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461172d57600080fd5b919050565b6000806040838503121561174557600080fd5b61174e83611716565b946020939093013593505050565b60006020828403121561176e57600080fd5b61177782611716565b9392505050565b60006020828403121561179057600080fd5b5035919050565b6000806000606084860312156117ac57600080fd5b6117b584611716565b92506117c360208501611716565b9150604084013590509250925092565b600080600080608085870312156117e957600080fd5b6117f285611716565b935061180060208601611716565b93969395505050506040820135916060013590565b600080600080600080600060e0888a03121561183057600080fd5b61183988611716565b965061184760208901611716565b95506040880135945060608801359350608088013560ff8116811461186b57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561189b57600080fd5b6118a483611716565b91506118b260208401611716565b90509250929050565b600181811c908216806118cf57607f821691505b6020821081036118ef57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600d908201526c27a7262c9027a822a920aa27a960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156119445761194461191c565b500390565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b60008160001904831182151516156119915761199161191c565b500290565b6000826119b357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156119cb576119cb61191c565b500190565b6000600182016119e2576119e261191c565b5060010190565b60008083128015600160ff1b850184121615611a0757611a0761191c565b6001600160ff1b0384018313811615611a2257611a2261191c565b50500390565b600080835481600182811c915080831680611a4457607f831692505b60208084108203611a6357634e487b7160e01b86526022600452602486fd5b818015611a775760018114611a8857611ab5565b60ff19861689528489019650611ab5565b60008a81526020902060005b86811015611aad5781548b820152908501908301611a94565b505084890196505b50949897505050505050505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203b6dcf74dcba5952c94f9204ff21e7856d27346b72b6c0f7426e61aaa65331f464736f6c634300080d0033

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

00000000000000000000000000000000000000000000000000000000000186a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b0000000000000000000000000000000000000000000000000000000000000014446f6c6120426f72726f77696e6720526967687400000000000000000000000000000000000000000000000000000000000000000000000000000000000000034442520000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _replenishmentPriceBps (uint256): 100000
Arg [1] : _name (string): Dola Borrowing Right
Arg [2] : _symbol (string): DBR
Arg [3] : _operator (address): 0x926dF14a23BE491164dCF93f4c468A50ef659D5B

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000186a0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 000000000000000000000000926df14a23be491164dcf93f4c468a50ef659d5b
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [5] : 446f6c6120426f72726f77696e67205269676874000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4442520000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

348:15793:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;386:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6795:213;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;6795:213:0;1053:187:1;1216:44:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1582:25:1;;;1570:2;1555:18;1216:44:0;1436:177:1;2023:119:0;;;;;;:::i;:::-;;:::i;:::-;;4454:172;;;:::i;2454:353::-;;;;;;:::i;:::-;;:::i;8018:520::-;;;;;;:::i;:::-;;:::i;661:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1032:38;;;;;;:::i;:::-;;;;;;;;;;;;;;3647:139;;;;;;:::i;:::-;;:::i;438:35::-;;471:2;438:35;;;;;2308:4:1;2296:17;;;2278:36;;2266:2;2251:18;438:35:0;2136:184:1;10712:179:0;;;:::i;5655:323::-;;;;;;:::i;:::-;;:::i;480:27::-;;;;;;14595:183;;;;;;:::i;:::-;;:::i;14306:78::-;;;;;;:::i;:::-;;:::i;514:23::-;;;;;-1:-1:-1;;;;;514:23:0;;;;;;-1:-1:-1;;;;;2671:32:1;;;2653:51;;2641:2;2626:18;514:23:0;2507:203:1;10631:73:0;;;:::i;11564:490::-;;;;;;:::i;:::-;;:::i;4985:323::-;;;;;;:::i;:::-;;:::i;890:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;6241:270;;;;;;:::i;:::-;;:::i;985:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4085:132;;;;;;:::i;:::-;;:::i;411:20::-;;;:::i;3313:132::-;;;;;;:::i;:::-;;:::i;621:33::-;;;;;;7254:339;;;;;;:::i;:::-;;:::i;544:30::-;;;;;-1:-1:-1;;;;;544:30:0;;;13543:623;;;;;;:::i;:::-;;:::i;9149:1387::-;;;;;;:::i;:::-;;:::i;2902:230::-;;;:::i;12916:203::-;;;;;;:::i;:::-;;:::i;581:33::-;;;;;;711:64;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;938:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12353:268;;;;;;:::i;:::-;;:::i;1120:49::-;;;;;;:::i;:::-;;;;;;;;;;;;;;386:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6795:213::-;6896:10;6869:4;6886:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;6886:30:0;;;;;;;;;;:39;;;6941:37;6869:4;;6886:30;;6941:37;;;;6919:6;1582:25:1;;1570:2;1555:18;;1436:177;6941:37:0;;;;;;;;-1:-1:-1;6996:4:0;6795:213;;;;:::o;2023:119::-;1763:8;;-1:-1:-1;;;;;1763:8:0;1749:10;:22;1741:48;;;;-1:-1:-1;;;1741:48:0;;;;;;;:::i;:::-;;;;;;;;;2104:15:::1;:30:::0;;-1:-1:-1;;;;;;2104:30:0::1;-1:-1:-1::0;;;;;2104:30:0;;;::::1;::::0;;;::::1;::::0;;2023:119::o;4454:172::-;4498:4;4542:12;;4518:21;;:36;4515:49;;;-1:-1:-1;4563:1:0;;4454:172::o;4515:49::-;4597:21;;4582:12;;:36;;;;:::i;:::-;4575:43;;4454:172;:::o;2454:353::-;1763:8;;-1:-1:-1;;;;;1763:8:0;1749:10;:22;1741:48;;;;-1:-1:-1;;;1741:48:0;;;;;;;:::i;:::-;2587:1:::1;2559:25;:29;2551:76;;;::::0;-1:-1:-1;;;2551:76:0;;5451:2:1;2551:76:0::1;::::0;::::1;5433:21:1::0;5490:2;5470:18;;;5463:30;5529:34;5509:18;;;5502:62;-1:-1:-1;;;5580:18:1;;;5573:32;5622:19;;2551:76:0::1;5249:398:1::0;2551:76:0::1;2675:9;2646:25;:38;;2638:101;;;::::0;-1:-1:-1;;;2638:101:0;;5854:2:1;2638:101:0::1;::::0;::::1;5836:21:1::0;5893:2;5873:18;;;5866:30;5932:34;5912:18;;;5905:62;-1:-1:-1;;;5983:18:1;;;5976:48;6041:19;;2638:101:0::1;5652:414:1::0;2638:101:0::1;2750:21;:49:::0;2454:353::o;8018:520::-;-1:-1:-1;;;;;8175:15:0;;8140:4;8175:15;;;:9;:15;;;;;;;;8191:10;8175:27;;;;;;;;-1:-1:-1;;8217:28:0;;8213:80;;8277:16;8287:6;8277:7;:16;:::i;:::-;-1:-1:-1;;;;;8247:15:0;;;;;;:9;:15;;;;;;;;8263:10;8247:27;;;;;;;:46;8213:80;8331:6;8312:15;8322:4;8312:9;:15::i;:::-;:25;;8304:58;;;;-1:-1:-1;;;8304:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8373:14:0;;;;;;:8;:14;;;;;:24;;8391:6;;8373:14;:24;;8391:6;;8373:24;:::i;:::-;;;;-1:-1:-1;;;;;;;8433:12:0;;;;;;;:8;:12;;;;;;;:22;;;;;;8482:26;8433:12;;8482:26;;;-1:-1:-1;;;;;;;;;;;8482:26:0;;;8449:6;1582:25:1;;1570:2;1555:18;;1436:177;8482:26:0;;;;;;;;-1:-1:-1;8526:4:0;;8018:520;-1:-1:-1;;;;8018:520:0:o;3647:139::-;1763:8;;-1:-1:-1;;;;;1763:8:0;1749:10;:22;1741:48;;;;-1:-1:-1;;;1741:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3717:16:0;::::1;3736:5;3717:16:::0;;;:7:::1;:16;::::0;;;;;:24;;-1:-1:-1;;3717:24:0::1;::::0;;3757:21;::::1;::::0;3736:5;3757:21:::1;3647:139:::0;:::o;10712:179::-;10769:7;10813:16;10796:13;:33;:87;;10859:24;:22;:24::i;10796:87::-;-1:-1:-1;10832:24:0;;10712:179::o;5655:323::-;-1:-1:-1;;;;;5738:11:0;;5709:4;5738:11;;;:5;:11;;;;;;;;;5794;:17;;;;;;5709:4;;5822:8;;5738:11;;5776:35;;:15;:35;:::i;:::-;5775:44;;;;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1;;;;;5879:14:0;;;;;;:8;:14;;;;;;;;;5844:16;:22;;;;;;;5760:70;;-1:-1:-1;5879:14:0;5844:32;;5760:70;;5844:32;:::i;:::-;:49;5841:62;;;-1:-1:-1;5902:1:0;;5655:323;-1:-1:-1;;;5655:323:0:o;5841:62::-;-1:-1:-1;;;;;5956:14:0;;;;;;:8;:14;;;;;;;;;5921:16;:22;;;;;;;:32;;5946:7;;5921:32;:::i;:::-;:49;;;;:::i;:::-;5914:56;5655:323;-1:-1:-1;;;;5655:323:0:o;14595:183::-;14668:10;14660:19;;;;:7;:19;;;;;;;;:27;;:19;:27;;:53;;-1:-1:-1;14705:8:0;;-1:-1:-1;;;;;14705:8:0;14691:10;:22;14660:53;14652:90;;;;-1:-1:-1;;;14652:90:0;;7150:2:1;14652:90:0;;;7132:21:1;7189:2;7169:18;;;7162:30;7228:26;7208:18;;;7201:54;7272:18;;14652:90:0;6948:348:1;14652:90:0;14753:17;14759:2;14763:6;14753:5;:17::i;:::-;14595:183;;:::o;14306:78::-;14351:25;14357:10;14369:6;14351:5;:25::i;:::-;14306:78;:::o;10631:73::-;10683:10;10676:18;;;;:6;:18;;;;;:20;;;;;;:::i;:::-;;;;;;10631:73::o;11564:490::-;-1:-1:-1;;;;;11633:11:0;;11621:9;11633:11;;;:5;:11;;;;;;;;;11658;:17;;;;;;;11679:15;11658:36;;11655:48;;11696:7;11564:490;:::o;11655:48::-;-1:-1:-1;;;;;11747:17:0;;11713:12;11747:17;;;:11;:17;;;;;;11775:8;;11768:4;;11729:35;;:15;:35;:::i;:::-;11728:44;;;;:::i;:::-;:55;;;;:::i;:::-;11713:70;;11807:1;11797:7;:11;:37;;;-1:-1:-1;;;;;;11812:17:0;;;;;;:11;:17;;;;;;:22;11797:37;11794:253;;;-1:-1:-1;;;;;11850:22:0;;;;;;:16;:22;;;;;:33;;11876:7;;11850:22;:33;;11876:7;;11850:33;:::i;:::-;;;;;;;;11923:7;11898:21;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11945:17:0;;;;;;:11;:17;;;;;;;;11965:15;11945:35;;12000;1582:25:1;;;11945:17:0;;;-1:-1:-1;;;;;;;;;;;12000:35:0;1555:18:1;12000:35:0;;;;;;;11794:253;11610:444;;11564:490;:::o;4985:323::-;-1:-1:-1;;;;;5068:11:0;;5039:4;5068:11;;;:5;:11;;;;;;;;;5124;:17;;;;;;5039:4;;5152:8;;5068:11;;5106:35;;:15;:35;:::i;:::-;5105:44;;;;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1;;;;;5209:14:0;;;;;;:8;:14;;;;;;;;;5174:16;:22;;;;;;;5090:70;;-1:-1:-1;5209:14:0;5174:32;;5090:70;;5174:32;:::i;:::-;:49;5171:62;;;-1:-1:-1;5232:1:0;;4985:323;-1:-1:-1;;;4985:323:0:o;5171:62::-;-1:-1:-1;;;;;5268:22:0;;;;;;:16;:22;;;;;;;;;5251:8;:14;;;;;;;5293:7;;5251:39;;;:::i;6241:270::-;-1:-1:-1;;;;;6329:11:0;;6301:3;6329:11;;;:5;:11;;;;;;;;;6385;:17;;;;;;6301:3;;6413:8;;6329:11;;6367:35;;:15;:35;:::i;:::-;6366:44;;;;:::i;:::-;:55;;;;:::i;:::-;-1:-1:-1;;;;;6465:22:0;;;;;;:16;:22;;;;;;;;;6443:8;:14;;;;;;;6351:70;;-1:-1:-1;6351:70:0;;6439:49;;6465:22;6439:49;:::i;:::-;:64;;;;:::i;4085:132::-;1763:8;;-1:-1:-1;;;;;1763:8:0;1749:10;:22;1741:48;;;;-1:-1:-1;;;1741:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4152:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:23;;-1:-1:-1;;4152:23:0::1;4171:4;4152:23;::::0;;4191:18;::::1;::::0;4152:16;4191:18:::1;4085:132:::0;:::o;411:20::-;;;;;;;:::i;3313:132::-;1763:8;;-1:-1:-1;;;;;1763:8:0;1749:10;:22;1741:48;;;;-1:-1:-1;;;1741:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3380:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:23;;-1:-1:-1;;3380:23:0::1;3399:4;3380:23;::::0;;3419:18;::::1;::::0;3380:16;3419:18:::1;3313:132:::0;:::o;7254:339::-;7324:4;7374:6;7349:21;7359:10;7349:9;:21::i;:::-;:31;;7341:64;;;;-1:-1:-1;;;7341:64:0;;;;;;;:::i;:::-;7425:10;7416:20;;;;:8;:20;;;;;:30;;7440:6;;7416:20;:30;;7440:6;;7416:30;:::i;:::-;;;;-1:-1:-1;;;;;;;7482:12:0;;;;;;:8;:12;;;;;;;:22;;;;;;7531:32;7540:10;;-1:-1:-1;;;;;;;;;;;7531:32:0;;;7498:6;1582:25:1;;1570:2;1555:18;;1436:177;13543:623:0;13675:10;13667:19;;;;:7;:19;;;;;;;;13659:70;;;;-1:-1:-1;;;13659:70:0;;7915:2:1;13659:70:0;;;7897:21:1;7954:2;7934:18;;;7927:30;7993:34;7973:18;;;7966:62;-1:-1:-1;;;8044:18:1;;;8037:36;8090:19;;13659:70:0;7713:402:1;13659:70:0;13740:12;13755:15;13765:4;13755:9;:15::i;:::-;13740:30;;13799:1;13789:7;:11;13781:34;;;;-1:-1:-1;;;13781:34:0;;8322:2:1;13781:34:0;;;8304:21:1;8361:2;8341:18;;;8334:30;-1:-1:-1;;;8380:18:1;;;8373:40;8430:18;;13781:34:0;8120:334:1;13781:34:0;13845:6;13834:7;:17;;13826:46;;;;-1:-1:-1;;;13826:46:0;;8661:2:1;13826:46:0;;;8643:21:1;8700:2;8680:18;;;8673:30;-1:-1:-1;;;8719:18:1;;;8712:46;8775:18;;13826:46:0;8459:340:1;13826:46:0;13883:22;13941:5;13917:21;;13908:6;:30;;;;:::i;:::-;:38;;;;:::i;:::-;13883:63;;13957:21;13973:4;13957:15;:21::i;:::-;-1:-1:-1;;;;;13989:11:0;;;;;;:5;:11;;;;;:32;;14004:17;;13989:11;:32;;14004:17;;13989:32;:::i;:::-;;;;-1:-1:-1;14032:19:0;;-1:-1:-1;14038:4:0;14044:6;14032:5;:19::i;:::-;14067:91;;;9006:25:1;;;9062:2;9047:18;;9040:34;;;9090:18;;;9083:34;;;14101:10:0;;-1:-1:-1;;;;;14067:91:0;;;;;;;;;;8994:2:1;8979:18;14067:91:0;;;;;;;13648:518;;13543:623;;;;:::o;9149:1387::-;9377:15;9365:8;:27;;9357:63;;;;-1:-1:-1;;;9357:63:0;;9330:2:1;9357:63:0;;;9312:21:1;9369:2;9349:18;;;9342:30;9408:25;9388:18;;;9381:53;9451:18;;9357:63:0;9128:347:1;9357:63:0;9456:24;9483:827;9623:18;:16;:18::i;:::-;-1:-1:-1;;;;;10077:13:0;;;;;;;:6;:13;;;;;;;;;:15;;;;;;;;9708:458;;9753:167;9708:458;;;9767:25:1;9846:18;;;9839:43;;;;9918:15;;;9898:18;;;9891:43;9950:18;;;9943:34;;;9993:19;;;9986:35;;;;10037:19;;;;10030:35;;;9708:458:0;;;;;;;;;;9739:19:1;;;9708:458:0;;;9668:525;;;;;;;;-1:-1:-1;;;9543:673:0;;;10334:27:1;10377:11;;;10370:27;;;;10413:12;;;10406:28;;;;10450:12;;9543:673:0;;;-1:-1:-1;;9543:673:0;;;;;;;;;9511:724;;9543:673;9511:724;;;;9483:827;;;;;;;;;10700:25:1;10773:4;10761:17;;10741:18;;;10734:45;10795:18;;;10788:34;;;10838:18;;;10831:34;;;10672:19;;9483:827:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9483:827:0;;-1:-1:-1;;9483:827:0;;;-1:-1:-1;;;;;;;10333:30:0;;;;;;:59;;;10387:5;-1:-1:-1;;;;;10367:25:0;:16;-1:-1:-1;;;;;10367:25:0;;10333:59;10325:86;;;;-1:-1:-1;;;10325:86:0;;11078:2:1;10325:86:0;;;11060:21:1;11117:2;11097:18;;;11090:30;-1:-1:-1;;;11136:18:1;;;11129:44;11190:18;;10325:86:0;10876:338:1;10325:86:0;-1:-1:-1;;;;;10426:27:0;;;;;;;:9;:27;;;;;;;;:36;;;;;;;;;;;;;:44;;;10497:31;1582:25:1;;;10426:36:0;;10497:31;;;;;1555:18:1;10497:31:0;;;;;;;9149:1387;;;;;;;:::o;2902:230::-;2967:15;;-1:-1:-1;;;;;2967:15:0;2953:10;:29;2945:63;;;;-1:-1:-1;;;2945:63:0;;11421:2:1;2945:63:0;;;11403:21:1;11460:2;11440:18;;;11433:30;-1:-1:-1;;;11479:18:1;;;11472:51;11540:18;;2945:63:0;11219:345:1;2945:63:0;3030:15;;;3019:8;:26;;-1:-1:-1;;;;;3030:15:0;;-1:-1:-1;;;;;;3019:26:0;;;;;;;;3056:28;;;;;;3100:24;;;;-1:-1:-1;;3100:24:0;2902:230::o;12916:203::-;12998:10;12990:19;;;;:7;:19;;;;;;;;12982:61;;;;-1:-1:-1;;;12982:61:0;;11771:2:1;12982:61:0;;;11753:21:1;11810:2;11790:18;;;11783:30;11849:31;11829:18;;;11822:59;11898:18;;12982:61:0;11569:353:1;12982:61:0;13054:21;13070:4;13054:15;:21::i;:::-;-1:-1:-1;;;;;13086:11:0;;;;;;:5;:11;;;;;:25;;13101:10;;13086:11;:25;;13101:10;;13086:25;:::i;:::-;;;;-1:-1:-1;;;;12916:203:0:o;12353:268::-;12440:10;12432:19;;;;:7;:19;;;;;;;;12424:62;;;;-1:-1:-1;;;12424:62:0;;12129:2:1;12424:62:0;;;12111:21:1;12168:2;12148:18;;;12141:30;12207:32;12187:18;;;12180:60;12257:18;;12424:62:0;11927:354:1;12424:62:0;12497:21;12513:4;12497:15;:21::i;:::-;12537:15;12547:4;12537:9;:15::i;:::-;:20;12529:44;;;;-1:-1:-1;;;12529:44:0;;12488:2:1;12529:44:0;;;12470:21:1;12527:2;12507:18;;;12500:30;-1:-1:-1;;;12546:18:1;;;12539:41;12597:18;;12529:44:0;12286:335:1;12529:44:0;-1:-1:-1;;;;;12584:11:0;;;;;;:5;:11;;;;;:29;;12599:14;;12584:11;:29;;12599:14;;12584:29;:::i;10899:457::-;10964:7;11065:95;11199:4;11183:22;;;;;;:::i;:::-;;;;;;;;;;11032:301;;;14123:25:1;;;;14164:18;;14157:34;;;;11228:14:0;14207:18:1;;;14200:34;11265:13:0;14250:18:1;;;14243:34;11309:4:0;14293:19:1;;;14286:61;14095:19;;11032:301:0;;;;;;;;;;;;11004:344;;;;;;10984:364;;10899:457;:::o;14932:218::-;15019:6;15003:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;15061:12:0;;;;;;:8;:12;;;;;;;;:22;;;;;;15110:32;1582:25:1;;;-1:-1:-1;;;;;;;;;;;15110:32:0;1555:18:1;15110:32:0;;;;;;;;14932:218;;:::o;15313:293::-;15413:6;15394:15;15404:4;15394:9;:15::i;:::-;:25;;15386:58;;;;-1:-1:-1;;;15386:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15455:14:0;;;;;;:8;:14;;;;;:24;;15473:6;;15455:14;:24;;15473:6;;15455:24;:::i;:::-;;;;-1:-1:-1;;15515:12:0;:22;;;;;;;15564:34;;1582:25:1;;;-1:-1:-1;;;;;;;15564:34:0;;;-1:-1:-1;;;;;;;;;;;15564:34:0;1570:2:1;1555:18;15564:34:0;1436:177:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1245:186::-;1304:6;1357:2;1345:9;1336:7;1332:23;1328:32;1325:52;;;1373:1;1370;1363:12;1325:52;1396:29;1415:9;1396:29;:::i;:::-;1386:39;1245:186;-1:-1:-1;;;1245:186:1:o;1618:180::-;1677:6;1730:2;1718:9;1709:7;1705:23;1701:32;1698:52;;;1746:1;1743;1736:12;1698:52;-1:-1:-1;1769:23:1;;1618:180;-1:-1:-1;1618:180:1:o;1803:328::-;1880:6;1888;1896;1949:2;1937:9;1928:7;1924:23;1920:32;1917:52;;;1965:1;1962;1955:12;1917:52;1988:29;2007:9;1988:29;:::i;:::-;1978:39;;2036:38;2070:2;2059:9;2055:18;2036:38;:::i;:::-;2026:48;;2121:2;2110:9;2106:18;2093:32;2083:42;;1803:328;;;;;:::o;2895:397::-;2981:6;2989;2997;3005;3058:3;3046:9;3037:7;3033:23;3029:33;3026:53;;;3075:1;3072;3065:12;3026:53;3098:29;3117:9;3098:29;:::i;:::-;3088:39;;3146:38;3180:2;3169:9;3165:18;3146:38;:::i;:::-;2895:397;;3136:48;;-1:-1:-1;;;;3231:2:1;3216:18;;3203:32;;3282:2;3267:18;3254:32;;2895:397::o;3297:693::-;3408:6;3416;3424;3432;3440;3448;3456;3509:3;3497:9;3488:7;3484:23;3480:33;3477:53;;;3526:1;3523;3516:12;3477:53;3549:29;3568:9;3549:29;:::i;:::-;3539:39;;3597:38;3631:2;3620:9;3616:18;3597:38;:::i;:::-;3587:48;;3682:2;3671:9;3667:18;3654:32;3644:42;;3733:2;3722:9;3718:18;3705:32;3695:42;;3787:3;3776:9;3772:19;3759:33;3832:4;3825:5;3821:16;3814:5;3811:27;3801:55;;3852:1;3849;3842:12;3801:55;3297:693;;;;-1:-1:-1;3297:693:1;;;;3875:5;3927:3;3912:19;;3899:33;;-1:-1:-1;3979:3:1;3964:19;;;3951:33;;3297:693;-1:-1:-1;;3297:693:1:o;3995:260::-;4063:6;4071;4124:2;4112:9;4103:7;4099:23;4095:32;4092:52;;;4140:1;4137;4130:12;4092:52;4163:29;4182:9;4163:29;:::i;:::-;4153:39;;4211:38;4245:2;4234:9;4230:18;4211:38;:::i;:::-;4201:48;;3995:260;;;;;:::o;4260:380::-;4339:1;4335:12;;;;4382;;;4403:61;;4457:4;4449:6;4445:17;4435:27;;4403:61;4510:2;4502:6;4499:14;4479:18;4476:38;4473:161;;4556:10;4551:3;4547:20;4544:1;4537:31;4591:4;4588:1;4581:15;4619:4;4616:1;4609:15;4473:161;;4260:380;;;:::o;4645:337::-;4847:2;4829:21;;;4886:2;4866:18;;;4859:30;-1:-1:-1;;;4920:2:1;4905:18;;4898:43;4973:2;4958:18;;4645:337::o;4987:127::-;5048:10;5043:3;5039:20;5036:1;5029:31;5079:4;5076:1;5069:15;5103:4;5100:1;5093:15;5119:125;5159:4;5187:1;5184;5181:8;5178:34;;;5192:18;;:::i;:::-;-1:-1:-1;5229:9:1;;5119:125::o;6071:344::-;6273:2;6255:21;;;6312:2;6292:18;;;6285:30;-1:-1:-1;;;6346:2:1;6331:18;;6324:50;6406:2;6391:18;;6071:344::o;6420:168::-;6460:7;6526:1;6522;6518:6;6514:14;6511:1;6508:21;6503:1;6496:9;6489:17;6485:45;6482:71;;;6533:18;;:::i;:::-;-1:-1:-1;6573:9:1;;6420:168::o;6593:217::-;6633:1;6659;6649:132;;6703:10;6698:3;6694:20;6691:1;6684:31;6738:4;6735:1;6728:15;6766:4;6763:1;6756:15;6649:132;-1:-1:-1;6795:9:1;;6593:217::o;6815:128::-;6855:3;6886:1;6882:6;6879:1;6876:13;6873:39;;;6892:18;;:::i;:::-;-1:-1:-1;6928:9:1;;6815:128::o;7301:135::-;7340:3;7361:17;;;7358:43;;7381:18;;:::i;:::-;-1:-1:-1;7428:1:1;7417:13;;7301:135::o;7441:267::-;7480:4;7509:9;;;7534:10;;-1:-1:-1;;;7553:19:1;;7546:27;;7530:44;7527:70;;;7577:18;;:::i;:::-;-1:-1:-1;;;;;7624:27:1;;7617:35;;7609:44;;7606:70;;;7656:18;;:::i;:::-;-1:-1:-1;;7693:9:1;;7441:267::o;12755:1104::-;12885:3;12914:1;12947:6;12941:13;12977:3;12999:1;13027:9;13023:2;13019:18;13009:28;;13087:2;13076:9;13072:18;13109;13099:61;;13153:4;13145:6;13141:17;13131:27;;13099:61;13179:2;13227;13219:6;13216:14;13196:18;13193:38;13190:165;;-1:-1:-1;;;13254:33:1;;13310:4;13307:1;13300:15;13340:4;13261:3;13328:17;13190:165;13371:18;13398:104;;;;13516:1;13511:323;;;;13364:470;;13398:104;-1:-1:-1;;13431:24:1;;13419:37;;13476:16;;;;-1:-1:-1;13398:104:1;;13511:323;12702:1;12695:14;;;12739:4;12726:18;;13609:1;13623:165;13637:6;13634:1;13631:13;13623:165;;;13715:14;;13702:11;;;13695:35;13758:16;;;;13652:10;;13623:165;;;13627:3;;13817:6;13812:3;13808:16;13801:23;;13364:470;-1:-1:-1;13850:3:1;;12755:1104;-1:-1:-1;;;;;;;;12755:1104:1:o

Swarm Source

ipfs://3b6dcf74dcba5952c94f9204ff21e7856d27346b72b6c0f7426e61aaa65331f4

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

DOLA Borrowing Rights replace interest rates with a fixed fee that can earn user more.

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.