ETH Price: $2,480.85 (-0.84%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

ContractCreator

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer168560732023-03-18 17:17:59791 days ago1679159879IN
0x0D9FEEBA...a4fFc71C0
0.00069 ETH0.0006244129.73384966

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Hyperbitcoinization

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.13;

/// ============ Imports ============

import {IERC20} from "./interfaces/IERC20.sol"; // ERC20 minified interface
import {AggregatorV3Interface} from "chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; // Chainlink pricefeed

/// @title Hyperbitcoinization
/// @author Anish Agnihotri
/// @notice Simple 1M USDC vs 1 wBTC 90-day bet cleared by Chainlink
contract Hyperbitcoinization {
    /// ============ Structs ============

    /// @notice Individual bet
    struct Bet {
        /// @notice Has bet already been settled
        bool settled;
        /// @notice Has partyUSDC sent funds
        bool USDCSent;
        /// @notice Has partyWBTC sent funds
        bool WBTCSent;
        /// @notice Party providing USDC
        address partyUSDC;
        /// @notice Party providing wBTC
        address partyWBTC;
        /// @notice Bet starting timestamp
        uint256 startTimestamp;
    }

    /// ============ Constants ============

    /// @notice 90 days
    uint256 public constant BET_DURATION = 90 days;
    /// @notice USDC amount
    uint256 public constant USDC_AMOUNT = 1_000_000e6;
    /// @notice wBTC amount
    uint256 public constant WBTC_AMOUNT = 1e8;
    /// @notice winning BTC/USD price
    uint256 public constant WINNING_BTC_PRICE = 1_000_000;

    /// ============ Immutable storage ============

    /// @notice USDC token
    IERC20 public immutable USDC_TOKEN;
    /// @notice WBTC token
    IERC20 public immutable WBTC_TOKEN;
    /// @notice BTC/USD price feed (Chainlink)
    AggregatorV3Interface public immutable BTCUSD_PRICEFEED;

    /// ============ Mutable storage ============

    /// @notice ID of current bet (next = curr + 1)
    uint256 public currentBetId = 0;
    /// @notice Mapping of bet id => bet
    mapping(uint256 => Bet) public bets;

    /// ============ Constructor ============

    /// @notice Creates a new Hyperbitcoinization contract
    /// @param _USDC_TOKEN address of USDC token
    /// @param _WBTC_TOKEN address of WBTC token
    /// @param _BTCUSD_PRICEFEED address of pricefeed for BTC/USD
    constructor(address _USDC_TOKEN, address _WBTC_TOKEN, address _BTCUSD_PRICEFEED) {
        USDC_TOKEN = IERC20(_USDC_TOKEN);
        WBTC_TOKEN = IERC20(_WBTC_TOKEN);
        BTCUSD_PRICEFEED = AggregatorV3Interface(_BTCUSD_PRICEFEED);
    }

    /// ============ Functions ============

    /// @notice Creates a new bet between two parties
    /// @param partyUSDC providing USDC
    /// @param partyWBTC providing wBTC
    function createBet(address partyUSDC, address partyWBTC) external returns (uint256) {
        currentBetId++;
        bets[currentBetId] = Bet({
            settled: false,
            USDCSent: false,
            WBTCSent: false,
            partyUSDC: partyUSDC,
            partyWBTC: partyWBTC,
            startTimestamp: 0
        });
        return currentBetId;
    }

    /// @notice Allows partyUSDC to add USDC to a bet.
    /// @dev Requires user to approve contract.
    /// @param betId to add funds to
    function addUSDC(uint256 betId) external {
        Bet storage bet = bets[betId];
        require(!bet.USDCSent, "USDC already added");
        require(msg.sender == bet.partyUSDC, "User not part of bet");

        // Transfer USDC
        USDC_TOKEN.transferFrom(msg.sender, address(this), USDC_AMOUNT);

        // Toggle USDC sent
        bet.USDCSent = true;

        // Start bet if both parties sent
        if (bet.WBTCSent) bet.startTimestamp = block.timestamp;
    }

    /// @notice Allows partyWBTC to add wBTC to a bet.
    /// @dev Requires user to approve contract.
    /// @param betId to add funds to
    function addWBTC(uint256 betId) external {
        Bet storage bet = bets[betId];
        require(!bet.WBTCSent, "wBTC already added");
        require(msg.sender == bet.partyWBTC, "User not part of bet");

        // Transfer WBTC
        WBTC_TOKEN.transferFrom(msg.sender, address(this), WBTC_AMOUNT);

        // Toggle wBTC sent
        bet.WBTCSent = true;

        // Start bet if both parties sent
        if (bet.USDCSent) bet.startTimestamp = block.timestamp;
    }

    /// @notice Collect BTC/USD price from Chainlink
    function getBTCPrice() public view returns (uint256) {
        // Collect BTC price
        (, int256 price,,,) = BTCUSD_PRICEFEED.latestRoundData();
        return uint256(price) / 10 ** BTCUSD_PRICEFEED.decimals();
    }

    /// @notice Allows anyone to settle an existing bet
    /// @param betId to settle
    function settleBet(uint256 betId) external {
        Bet storage bet = bets[betId];
        require(!bet.settled, "Bet already settled");
        require(block.timestamp >= bet.startTimestamp + BET_DURATION, "Bet still pending");

        // Mark bet settled
        bet.settled = true;

        // Check for winner
        address winner = getBTCPrice() > WINNING_BTC_PRICE ? bet.partyUSDC : bet.partyWBTC;

        // Send funds to winner
        USDC_TOKEN.transfer(winner, USDC_AMOUNT);
        WBTC_TOKEN.transfer(winner, WBTC_AMOUNT);
    }

    /// @notice Allows any bet party to withdraw funds while bet is pending
    /// @param betId to withdraw
    function withdrawStale(uint256 betId) external {
        Bet storage bet = bets[betId];
        require(bet.startTimestamp == 0, "Bet already started");
        require(msg.sender == bet.partyUSDC || msg.sender == bet.partyWBTC, "Not bet participant");

        // If USDC received, return USDC
        if (bet.USDCSent) {
            bet.USDCSent = false;
            USDC_TOKEN.transfer(bet.partyUSDC, USDC_AMOUNT);
        }
        // If wBTC received, return wBTC
        if (bet.WBTCSent) {
            bet.WBTCSent = false;
            WBTC_TOKEN.transfer(bet.partyWBTC, WBTC_AMOUNT);
        }
    }
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface AggregatorV3Interface {
  function decimals() external view returns (uint8);

  function description() external view returns (string memory);

  function version() external view returns (uint256);

  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
}

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.0;

interface IERC20 {
    function approve(address, uint256) external returns (bool);
    function balanceOf(address) external view returns (uint256);
    function transfer(address, uint256) external returns (bool);
    function transferFrom(address, address, uint256) external returns (bool);
}

Settings
{
  "remappings": [
    "chainlink/=lib/chainlink/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_USDC_TOKEN","type":"address"},{"internalType":"address","name":"_WBTC_TOKEN","type":"address"},{"internalType":"address","name":"_BTCUSD_PRICEFEED","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BET_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BTCUSD_PRICEFEED","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WBTC_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WBTC_TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WINNING_BTC_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"betId","type":"uint256"}],"name":"addUSDC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"betId","type":"uint256"}],"name":"addWBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bets","outputs":[{"internalType":"bool","name":"settled","type":"bool"},{"internalType":"bool","name":"USDCSent","type":"bool"},{"internalType":"bool","name":"WBTCSent","type":"bool"},{"internalType":"address","name":"partyUSDC","type":"address"},{"internalType":"address","name":"partyWBTC","type":"address"},{"internalType":"uint256","name":"startTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"partyUSDC","type":"address"},{"internalType":"address","name":"partyWBTC","type":"address"}],"name":"createBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentBetId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBTCPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"betId","type":"uint256"}],"name":"settleBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"betId","type":"uint256"}],"name":"withdrawStale","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e06040526000805534801561001457600080fd5b50604051610ff8380380610ff88339810160408190526100339161006c565b6001600160a01b0392831660805290821660a0521660c0526100af565b80516001600160a01b038116811461006757600080fd5b919050565b60008060006060848603121561008157600080fd5b61008a84610050565b925061009860208501610050565b91506100a660408501610050565b90509250925092565b60805160a05160c051610ee26101166000396000818161027801528181610b0f0152610b970152600081816101da0152818161048e015281816106c60152610a6d0152600081816102b1015281816103f50152818161060f01526108fe0152610ee26000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80635b4a9b5111610097578063d11d4b6511610066578063d11d4b6514610273578063dd22db801461029a578063e53d4c2d146102a2578063fa569274146102ac57600080fd5b80635b4a9b51146102315780635d9ec2c71461023a578063ac4073b21461024d578063b6146cac1461026057600080fd5b80632485dacf116100d35780632485dacf146101ca5780632ed41384146101d557806337caeb93146102145780634776aa651461021e57600080fd5b80631153ad74146100fa57806316fd381a1461011957806322af00fa1461012e575b600080fd5b61010664e8d4a5100081565b6040519081526020015b60405180910390f35b61012c610127366004610c32565b6102d3565b005b61018a61013c366004610c32565b600160208190526000918252604090912080549181015460029091015460ff8084169361010081048216936201000082049092169263010000009091046001600160a01b0390811692169086565b6040805196151587529415156020870152921515938501939093526001600160a01b039081166060850152909116608083015260a082015260c001610110565b6101066305f5e10081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610110565b610106620f424081565b61012c61022c366004610c32565b610501565b61010660005481565b610106610248366004610c67565b61073b565b61012c61025b366004610c32565b610827565b61012c61026e366004610c32565b61099a565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b610106610b0a565b6101066276a70081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6000818152600160205260409020805460ff161561032e5760405162461bcd60e51b815260206004820152601360248201527210995d08185b1c9958591e481cd95d1d1b1959606a1b60448201526064015b60405180910390fd5b6276a70081600201546103419190610cb0565b4210156103845760405162461bcd60e51b8152602060048201526011602482015270426574207374696c6c2070656e64696e6760781b6044820152606401610325565b805460ff191660011781556000620f424061039d610b0a565b116103b55760018201546001600160a01b03166103c8565b8154630100000090046001600160a01b03165b60405163a9059cbb60e01b81526001600160a01b03808316600483015264e8d4a5100060248301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015610440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104649190610cc8565b5060405163a9059cbb60e01b81526001600160a01b0382811660048301526305f5e10060248301527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af11580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb9190610cc8565b50505050565b60008181526001602052604090206002810154156105575760405162461bcd60e51b815260206004820152601360248201527210995d08185b1c9958591e481cdd185c9d1959606a1b6044820152606401610325565b8054630100000090046001600160a01b0316331480610582575060018101546001600160a01b031633145b6105c45760405162461bcd60e51b8152602060048201526013602482015272139bdd0818995d081c185c9d1a58da5c185b9d606a1b6044820152606401610325565b8054610100900460ff161561067e57805461ff00191680825560405163a9059cbb60e01b815263010000009091046001600160a01b03908116600483015264e8d4a5100060248301527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067c9190610cc8565b505b805462010000900460ff161561073757805462ff000019168155600181015460405163a9059cbb60e01b81526001600160a01b0391821660048201526305f5e10060248201527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190610cc8565b505b5050565b60008054818061074a83610cf1565b90915550506040805160c081018252600080825260208083018281528385018381526001600160a01b03898116606087019081528982166080880190815260a08801878152875488526001968790529887209751885495519451925161ffff1990961690151561ff00191617610100941515949094029390931762010000600160b81b03191662010000911515919091026301000000600160b81b031916176301000000938216939093029290921785555191840180546001600160a01b0319169290911691909117905591516002909101555490505b92915050565b60008181526001602052604090208054610100900460ff16156108815760405162461bcd60e51b81526020600482015260126024820152711554d110c8185b1c9958591e48185919195960721b6044820152606401610325565b8054630100000090046001600160a01b031633146108d85760405162461bcd60e51b8152602060048201526014602482015273155cd95c881b9bdd081c185c9d081bd98818995d60621b6044820152606401610325565b6040516323b872dd60e01b815233600482015230602482015264e8d4a5100060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190610cc8565b50805461ff0019166101001780825562010000900460ff1615610737574260028201555050565b6000818152600160205260409020805462010000900460ff16156109f55760405162461bcd60e51b81526020600482015260126024820152711dd09510c8185b1c9958591e48185919195960721b6044820152606401610325565b60018101546001600160a01b03163314610a485760405162461bcd60e51b8152602060048201526014602482015273155cd95c881b9bdd081c185c9d081bd98818995d60621b6044820152606401610325565b6040516323b872dd60e01b81523360048201523060248201526305f5e10060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae29190610cc8565b50805462ff000019166201000017808255610100900460ff1615610737574260028201555050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190610d24565b5050509150507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190610d74565b610c2290600a610e7b565b610c2c9082610e8a565b91505090565b600060208284031215610c4457600080fd5b5035919050565b80356001600160a01b0381168114610c6257600080fd5b919050565b60008060408385031215610c7a57600080fd5b610c8383610c4b565b9150610c9160208401610c4b565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610cc357610cc3610c9a565b500190565b600060208284031215610cda57600080fd5b81518015158114610cea57600080fd5b9392505050565b600060018201610d0357610d03610c9a565b5060010190565b805169ffffffffffffffffffff81168114610c6257600080fd5b600080600080600060a08688031215610d3c57600080fd5b610d4586610d0a565b9450602086015193506040860151925060608601519150610d6860808701610d0a565b90509295509295909350565b600060208284031215610d8657600080fd5b815160ff81168114610cea57600080fd5b600181815b80851115610dd2578160001904821115610db857610db8610c9a565b80851615610dc557918102915b93841c9390800290610d9c565b509250929050565b600082610de957506001610821565b81610df657506000610821565b8160018114610e0c5760028114610e1657610e32565b6001915050610821565b60ff841115610e2757610e27610c9a565b50506001821b610821565b5060208310610133831016604e8410600b8410161715610e55575081810a610821565b610e5f8383610d97565b8060001904821115610e7357610e73610c9a565b029392505050565b6000610cea60ff841683610dda565b600082610ea757634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207196992c52778ecc20b457f9c983138810fbcdf9622a0356a0c3c9705dd8e7b964736f6c634300080d0033000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000f4030086522a5beea4988f8ca5b36dbc97bee88c

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80635b4a9b5111610097578063d11d4b6511610066578063d11d4b6514610273578063dd22db801461029a578063e53d4c2d146102a2578063fa569274146102ac57600080fd5b80635b4a9b51146102315780635d9ec2c71461023a578063ac4073b21461024d578063b6146cac1461026057600080fd5b80632485dacf116100d35780632485dacf146101ca5780632ed41384146101d557806337caeb93146102145780634776aa651461021e57600080fd5b80631153ad74146100fa57806316fd381a1461011957806322af00fa1461012e575b600080fd5b61010664e8d4a5100081565b6040519081526020015b60405180910390f35b61012c610127366004610c32565b6102d3565b005b61018a61013c366004610c32565b600160208190526000918252604090912080549181015460029091015460ff8084169361010081048216936201000082049092169263010000009091046001600160a01b0390811692169086565b6040805196151587529415156020870152921515938501939093526001600160a01b039081166060850152909116608083015260a082015260c001610110565b6101066305f5e10081565b6101fc7f0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c59981565b6040516001600160a01b039091168152602001610110565b610106620f424081565b61012c61022c366004610c32565b610501565b61010660005481565b610106610248366004610c67565b61073b565b61012c61025b366004610c32565b610827565b61012c61026e366004610c32565b61099a565b6101fc7f000000000000000000000000f4030086522a5beea4988f8ca5b36dbc97bee88c81565b610106610b0a565b6101066276a70081565b6101fc7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b6000818152600160205260409020805460ff161561032e5760405162461bcd60e51b815260206004820152601360248201527210995d08185b1c9958591e481cd95d1d1b1959606a1b60448201526064015b60405180910390fd5b6276a70081600201546103419190610cb0565b4210156103845760405162461bcd60e51b8152602060048201526011602482015270426574207374696c6c2070656e64696e6760781b6044820152606401610325565b805460ff191660011781556000620f424061039d610b0a565b116103b55760018201546001600160a01b03166103c8565b8154630100000090046001600160a01b03165b60405163a9059cbb60e01b81526001600160a01b03808316600483015264e8d4a5100060248301529192507f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489091169063a9059cbb906044016020604051808303816000875af1158015610440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104649190610cc8565b5060405163a9059cbb60e01b81526001600160a01b0382811660048301526305f5e10060248301527f0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599169063a9059cbb906044016020604051808303816000875af11580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb9190610cc8565b50505050565b60008181526001602052604090206002810154156105575760405162461bcd60e51b815260206004820152601360248201527210995d08185b1c9958591e481cdd185c9d1959606a1b6044820152606401610325565b8054630100000090046001600160a01b0316331480610582575060018101546001600160a01b031633145b6105c45760405162461bcd60e51b8152602060048201526013602482015272139bdd0818995d081c185c9d1a58da5c185b9d606a1b6044820152606401610325565b8054610100900460ff161561067e57805461ff00191680825560405163a9059cbb60e01b815263010000009091046001600160a01b03908116600483015264e8d4a5100060248301527f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48169063a9059cbb906044016020604051808303816000875af1158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067c9190610cc8565b505b805462010000900460ff161561073757805462ff000019168155600181015460405163a9059cbb60e01b81526001600160a01b0391821660048201526305f5e10060248201527f0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5999091169063a9059cbb906044016020604051808303816000875af1158015610711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107359190610cc8565b505b5050565b60008054818061074a83610cf1565b90915550506040805160c081018252600080825260208083018281528385018381526001600160a01b03898116606087019081528982166080880190815260a08801878152875488526001968790529887209751885495519451925161ffff1990961690151561ff00191617610100941515949094029390931762010000600160b81b03191662010000911515919091026301000000600160b81b031916176301000000938216939093029290921785555191840180546001600160a01b0319169290911691909117905591516002909101555490505b92915050565b60008181526001602052604090208054610100900460ff16156108815760405162461bcd60e51b81526020600482015260126024820152711554d110c8185b1c9958591e48185919195960721b6044820152606401610325565b8054630100000090046001600160a01b031633146108d85760405162461bcd60e51b8152602060048201526014602482015273155cd95c881b9bdd081c185c9d081bd98818995d60621b6044820152606401610325565b6040516323b872dd60e01b815233600482015230602482015264e8d4a5100060448201527f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb486001600160a01b0316906323b872dd906064016020604051808303816000875af115801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190610cc8565b50805461ff0019166101001780825562010000900460ff1615610737574260028201555050565b6000818152600160205260409020805462010000900460ff16156109f55760405162461bcd60e51b81526020600482015260126024820152711dd09510c8185b1c9958591e48185919195960721b6044820152606401610325565b60018101546001600160a01b03163314610a485760405162461bcd60e51b8152602060048201526014602482015273155cd95c881b9bdd081c185c9d081bd98818995d60621b6044820152606401610325565b6040516323b872dd60e01b81523360048201523060248201526305f5e10060448201527f0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c5996001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae29190610cc8565b50805462ff000019166201000017808255610100900460ff1615610737574260028201555050565b6000807f000000000000000000000000f4030086522a5beea4988f8ca5b36dbc97bee88c6001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8f9190610d24565b5050509150507f000000000000000000000000f4030086522a5beea4988f8ca5b36dbc97bee88c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190610d74565b610c2290600a610e7b565b610c2c9082610e8a565b91505090565b600060208284031215610c4457600080fd5b5035919050565b80356001600160a01b0381168114610c6257600080fd5b919050565b60008060408385031215610c7a57600080fd5b610c8383610c4b565b9150610c9160208401610c4b565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610cc357610cc3610c9a565b500190565b600060208284031215610cda57600080fd5b81518015158114610cea57600080fd5b9392505050565b600060018201610d0357610d03610c9a565b5060010190565b805169ffffffffffffffffffff81168114610c6257600080fd5b600080600080600060a08688031215610d3c57600080fd5b610d4586610d0a565b9450602086015193506040860151925060608601519150610d6860808701610d0a565b90509295509295909350565b600060208284031215610d8657600080fd5b815160ff81168114610cea57600080fd5b600181815b80851115610dd2578160001904821115610db857610db8610c9a565b80851615610dc557918102915b93841c9390800290610d9c565b509250929050565b600082610de957506001610821565b81610df657506000610821565b8160018114610e0c5760028114610e1657610e32565b6001915050610821565b60ff841115610e2757610e27610c9a565b50506001821b610821565b5060208310610133831016604e8410600b8410161715610e55575081810a610821565b610e5f8383610d97565b8060001904821115610e7357610e73610c9a565b029392505050565b6000610cea60ff841683610dda565b600082610ea757634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212207196992c52778ecc20b457f9c983138810fbcdf9622a0356a0c3c9705dd8e7b964736f6c634300080d0033

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

000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000f4030086522a5beea4988f8ca5b36dbc97bee88c

-----Decoded View---------------
Arg [0] : _USDC_TOKEN (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [1] : _WBTC_TOKEN (address): 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
Arg [2] : _BTCUSD_PRICEFEED (address): 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [1] : 0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599
Arg [2] : 000000000000000000000000f4030086522a5beea4988f8ca5b36dbc97bee88c


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

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.