ETH Price: $2,535.47 (-7.24%)

Contract

0xDe6B4964c4384BcDfA150a4A8bE9865C5b91E29C

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Transaction Hash
Block
From
To
Claim801887532024-11-30 8:16:29427 days ago1732954589IN
ReHold: Dual V2
0 ETH0.000000440.01
Claim801887062024-11-30 8:14:56427 days ago1732954496IN
ReHold: Dual V2
0 ETH0.000000440.01
Replay798429212024-11-20 6:45:30437 days ago1732085130IN
ReHold: Dual V2
0 ETH0.000000780.01
Replay798209302024-11-19 18:45:26437 days ago1732041926IN
ReHold: Dual V2
0 ETH0.0000010.01
Replay797923442024-11-19 6:45:26438 days ago1731998726IN
ReHold: Dual V2
0 ETH0.000000780.01
Replay797703382024-11-18 18:45:17438 days ago1731955517IN
ReHold: Dual V2
0 ETH0.000000970.01
Replay797483692024-11-18 6:45:18439 days ago1731912318IN
ReHold: Dual V2
0 ETH0.000000790.01
Replay797366192024-11-17 18:45:19439 days ago1731869119IN
ReHold: Dual V2
0 ETH0.000000840.01
Replay797175382024-11-17 6:45:18440 days ago1731825918IN
ReHold: Dual V2
0 ETH0.000000780.01
Replay797047862024-11-16 18:45:20440 days ago1731782720IN
ReHold: Dual V2
0 ETH0.000000860.01
Replay796860642024-11-16 6:45:09441 days ago1731739509IN
ReHold: Dual V2
0 ETH0.000000850.01
Replay796715592024-11-15 18:45:16441 days ago1731696316IN
ReHold: Dual V2
0 ETH0.000001020.01
Replay796526692024-11-15 6:45:12442 days ago1731653112IN
ReHold: Dual V2
0 ETH0.000000850.01
Replay796393852024-11-14 18:45:15442 days ago1731609915IN
ReHold: Dual V2
0 ETH0.000001110.01
Replay796217732024-11-14 6:45:13443 days ago1731566713IN
ReHold: Dual V2
0 ETH0.00000110.01
Replay796076992024-11-13 18:45:08443 days ago1731523508IN
ReHold: Dual V2
0 ETH0.000001820.01
Replay795910892024-11-13 6:44:58444 days ago1731480298IN
ReHold: Dual V2
0 ETH0.000000980.01
Replay795806172024-11-12 18:44:53444 days ago1731437093IN
ReHold: Dual V2
0 ETH0.000001110.01
Replay795610222024-11-12 6:44:50445 days ago1731393890IN
ReHold: Dual V2
0 ETH0.000000990.01
Replay795488142024-11-11 18:44:47445 days ago1731350687IN
ReHold: Dual V2
0 ETH0.000001220.01
Replay795409402024-11-11 6:44:59446 days ago1731307499IN
ReHold: Dual V2
0 ETH0.00000090.01
Replay795363792024-11-10 18:44:46446 days ago1731264286IN
ReHold: Dual V2
0 ETH0.000000890.01
Claim795320632024-11-10 6:49:48447 days ago1731221388IN
ReHold: Dual V2
0 ETH0.000000480.01
Replay795320372024-11-10 6:44:46447 days ago1731221086IN
ReHold: Dual V2
0 ETH0.00000080.01
Replay795279642024-11-09 18:44:44447 days ago1731177884IN
ReHold: Dual V2
0 ETH0.00000080.01
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DualFactory

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

import "./interfaces/IDual.sol";
import "./libraries/math.sol";

import "./access/MPCManageable.sol";

contract DualFactory is MPCManageable, IDualFactory {
  uint256 public constant DECIMALS = 18;
  mapping(bytes32 => bool) public duals;

  constructor(address _MPC) MPCManageable(_MPC) {}

  function create(Tariff memory tariff, Input memory input) public onlyMPC {
    _create(tariff, _dual(tariff, input));
  }

  function claim(Dual memory dual) public onlyMPC {
    bytes32 id = _id(dual);

    require(duals[id], "Dual: Not found");
    require(dual.closedPrice > 0, "Dual: Bad closed price");
    require(block.timestamp >= dual.finishAt, "Dual: Not finished yet");

    _output(dual);

    duals[id] = false;

    emit DualClaimed(
      id,
      dual.user,
      dual.chainId,
      dual.parentId,
      dual.outputToken,
      dual.outputAmount,
      dual.closedPrice,
      dual.finishAt
    );
  }

  function replay(Dual memory dual, Tariff calldata tariff, ReplayInput memory input) public onlyMPC {
    bytes32 id = _id(dual);

    require(duals[id], "Dual: Not found");
    require(dual.closedPrice > 0, "Dual: Bad closed price");
    require(input.startedAt >= dual.finishAt, "Dual: Bad start date");
    require(block.timestamp >= dual.finishAt, "Dual: Not finished yet");

    _output(dual);

    duals[id] = false;

    emit DualReplayed(
      id,
      dual.user,
      dual.chainId,
      dual.parentId,
      dual.outputToken,
      dual.outputAmount,
      dual.closedPrice,
      dual.finishAt
    );

    Input memory _input = Input(
      dual.user,
      id,
      dual.outputToken,
      dual.outputAmount,
      input.initialPrice,
      input.startedAt
    );

    _create(tariff, _dual(tariff, _input));
  }

  function _create(Tariff memory tariff, Dual memory dual) internal {
    _validate(tariff, dual);

    bytes32 id = _id(dual);

    require(!duals[id], "Dual: Already created");

    duals[id] = true;

    emit DualCreated(
      id,
      dual.user,
      dual.chainId,
      dual.parentId,
      dual.baseToken,
      dual.quoteToken,
      dual.inputToken,
      dual.inputAmount,
      dual.yield,
      dual.initialPrice,
      dual.finishAt
    );
  }

  function _validate(Tariff memory tariff, Dual memory dual) internal view {
    require(dual.user != address(0), "Dual: Bad user");
    require(tariff.chainId != 0, "Dual: Bad chainId");

    require(
      dual.inputToken == tariff.baseToken || dual.inputToken == tariff.quoteToken,
      "Dual: Input must be one from pair"
    );

    require(dual.inputAmount > 0, "Dual: Bad amount");
    require(tariff.yield > 0, "Dual: Bad tariff yield");
    require(dual.initialPrice > 0, "Dual: Bad initialPrice");
    require(tariff.stakingPeriod > 0, "Dual: Bad tariff stakingPeriod");
    require(dual.parentId != 0x0, "Dual: Bad parentId");
    require(dual.finishAt > block.timestamp, "Dual: Bad finish date");
  }

  function _dual(Tariff memory tariff, Input memory input) internal pure returns (Dual memory dual) {
    dual.user = input.user;
    dual.chainId = tariff.chainId;
    dual.baseToken = tariff.baseToken;
    dual.quoteToken = tariff.quoteToken;
    dual.inputToken = input.token;
    dual.inputAmount = input.amount;
    dual.yield = tariff.yield;
    dual.initialPrice = input.initialPrice;
    dual.parentId = input.parentId;
    dual.finishAt = input.startedAt + tariff.stakingPeriod * 1 hours;
  }

  function _id(Dual memory dual) internal pure returns (bytes32) {
    return
      keccak256(
        abi.encode(
          dual.user,
          dual.chainId,
          dual.parentId,
          dual.baseToken,
          dual.quoteToken,
          dual.inputToken,
          dual.inputAmount,
          dual.yield,
          dual.initialPrice,
          dual.finishAt
        )
      );
  }

  function _output(Dual memory dual) internal pure {
    if (dual.closedPrice >= dual.initialPrice) {
      dual.outputToken = dual.quoteToken;

      if (dual.inputToken == dual.quoteToken) {
        dual.outputAmount = dual.inputAmount + RMath.percent(dual.inputAmount, dual.yield);
      } else {
        dual.outputAmount = (dual.inputAmount * dual.initialPrice) / 10 ** DECIMALS;
        dual.outputAmount = dual.outputAmount + RMath.percent(dual.outputAmount, dual.yield);
      }
    } else {
      dual.outputToken = dual.baseToken;

      if (dual.inputToken == dual.baseToken) {
        dual.outputAmount = dual.inputAmount + RMath.percent(dual.inputAmount, dual.yield);
      } else {
        dual.outputAmount = (dual.inputAmount * (10 ** DECIMALS)) / dual.initialPrice;
        dual.outputAmount = dual.outputAmount + RMath.percent(dual.outputAmount, dual.yield);
      }
    }
  }
}

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

abstract contract MPCManageable {
  event MPCUpdated(address indexed oldMPC, address indexed newMPC, uint256 effectiveTime);

  uint256 public constant DELAY = 2 days;

  address internal _oldMPC;
  address internal _newMPC;
  uint256 internal _newMPCEffectiveTime;

  constructor(address _MPC) {
    _updateMPC(_MPC, 0);
  }

  modifier onlyMPC() {
    _checkMPC();
    _;
  }

  function mpc() public view returns (address) {
    if (block.timestamp >= _newMPCEffectiveTime) {
      return _newMPC;
    }

    return _oldMPC;
  }

  function updateMPC(address newMPC) public onlyMPC {
    _updateMPC(newMPC, DELAY);
  }

  function _updateMPC(address newMPC, uint256 delay) private {
    require(newMPC != address(0), "MPCManageable: Nullable MPC");

    _oldMPC = mpc();
    _newMPC = newMPC;
    _newMPCEffectiveTime = block.timestamp + delay;

    emit MPCUpdated(_oldMPC, _newMPC, _newMPCEffectiveTime);
  }

  function _checkMPC() internal view {
    require(msg.sender == mpc(), "MPCManageable: Non MPC");
  }
}

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

struct Dual {
  address user;
  uint256 chainId;
  bytes32 parentId;
  address baseToken;
  address quoteToken;
  address inputToken;
  uint256 inputAmount;
  address outputToken;
  uint256 outputAmount;
  uint256 yield;
  uint256 initialPrice;
  uint256 closedPrice;
  uint256 finishAt;
}

struct Tariff {
  uint256 chainId;
  address baseToken;
  address quoteToken;
  uint256 stakingPeriod;
  uint256 yield;
}

interface IDualFactory {
  event DualCreated(
    bytes32 indexed id,
    address indexed user,
    uint256 indexed chainId,
    bytes32 parentId,
    address baseToken,
    address quoteToken,
    address inputToken,
    uint256 inputAmount,
    uint256 yield,
    uint256 initialPrice,
    uint256 finishAt
  );

  event DualClaimed(
    bytes32 indexed id,
    address indexed user,
    uint256 indexed chainId,
    bytes32 parentId,
    address outputToken,
    uint256 outputAmount,
    uint256 closedPrice,
    uint256 finishAt
  );

  event DualReplayed(
    bytes32 indexed id,
    address indexed user,
    uint256 indexed chainId,
    bytes32 parentId,
    address outputToken,
    uint256 outputAmount,
    uint256 closedPrice,
    uint256 finishAt
  );

  struct Input {
    address user;
    bytes32 parentId;
    address token;
    uint256 amount;
    uint256 initialPrice;
    uint256 startedAt;
  }

  struct ReplayInput {
    uint256 initialPrice;
    uint256 startedAt;
  }

  function duals(bytes32) external view returns (bool);

  function create(Tariff memory tariff, Input memory input) external;

  function claim(Dual memory dual) external;

  function replay(Dual memory dual, Tariff memory tariff, ReplayInput memory input) external;
}

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.17;

library RMath {
  uint32 internal constant PERCENT_DECIMALS = 10 ** 8;

  function percent(uint256 amount, uint256 _percent) internal pure returns (uint256) {
    return (amount * _percent) / PERCENT_DECIMALS;
  }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_MPC","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"parentId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"outputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"outputAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"closedPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finishAt","type":"uint256"}],"name":"DualClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"parentId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"baseToken","type":"address"},{"indexed":false,"internalType":"address","name":"quoteToken","type":"address"},{"indexed":false,"internalType":"address","name":"inputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"inputAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"yield","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"initialPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finishAt","type":"uint256"}],"name":"DualCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"chainId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"parentId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"outputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"outputAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"closedPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finishAt","type":"uint256"}],"name":"DualReplayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldMPC","type":"address"},{"indexed":true,"internalType":"address","name":"newMPC","type":"address"},{"indexed":false,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"MPCUpdated","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"bytes32","name":"parentId","type":"bytes32"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"yield","type":"uint256"},{"internalType":"uint256","name":"initialPrice","type":"uint256"},{"internalType":"uint256","name":"closedPrice","type":"uint256"},{"internalType":"uint256","name":"finishAt","type":"uint256"}],"internalType":"struct Dual","name":"dual","type":"tuple"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256","name":"stakingPeriod","type":"uint256"},{"internalType":"uint256","name":"yield","type":"uint256"}],"internalType":"struct Tariff","name":"tariff","type":"tuple"},{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"parentId","type":"bytes32"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"initialPrice","type":"uint256"},{"internalType":"uint256","name":"startedAt","type":"uint256"}],"internalType":"struct IDualFactory.Input","name":"input","type":"tuple"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"duals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mpc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"bytes32","name":"parentId","type":"bytes32"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"address","name":"inputToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"address","name":"outputToken","type":"address"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"yield","type":"uint256"},{"internalType":"uint256","name":"initialPrice","type":"uint256"},{"internalType":"uint256","name":"closedPrice","type":"uint256"},{"internalType":"uint256","name":"finishAt","type":"uint256"}],"internalType":"struct Dual","name":"dual","type":"tuple"},{"components":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256","name":"stakingPeriod","type":"uint256"},{"internalType":"uint256","name":"yield","type":"uint256"}],"internalType":"struct Tariff","name":"tariff","type":"tuple"},{"components":[{"internalType":"uint256","name":"initialPrice","type":"uint256"},{"internalType":"uint256","name":"startedAt","type":"uint256"}],"internalType":"struct IDualFactory.ReplayInput","name":"input","type":"tuple"}],"name":"replay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMPC","type":"address"}],"name":"updateMPC","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620015c7380380620015c7833981016040819052620000349162000167565b80620000428160006200004a565b5050620001c1565b6001600160a01b038216620000a55760405162461bcd60e51b815260206004820152601b60248201527f4d50434d616e61676561626c653a204e756c6c61626c65204d50430000000000604482015260640160405180910390fd5b620000af6200013b565b600080546001600160a01b03199081166001600160a01b039384161790915560018054909116918416919091179055620000ea814262000199565b60028190556001546000546040519283526001600160a01b03918216929116907fd4f738392c346d39b1aa1a5aec7636e00ee014a495f29ce6fb1770051c4d8aff9060200160405180910390a35050565b600060025442106200015757506001546001600160a01b031690565b506000546001600160a01b031690565b6000602082840312156200017a57600080fd5b81516001600160a01b03811681146200019257600080fd5b9392505050565b80820180821115620001bb57634e487b7160e01b600052601160045260246000fd5b92915050565b6113f680620001d16000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806369b411701161005b57806369b41170146100e3578063c65a48e2146100ed578063e061054714610120578063f75c26641461013357600080fd5b8063105aeb961461008d5780631070d1bd146100a2578063221ad9a5146100b55780632e0f2625146100c8575b600080fd5b6100a061009b366004610f16565b610153565b005b6100a06100b0366004611063565b61016b565b6100a06100c336600461118e565b61040a565b6100d0601281565b6040519081526020015b60405180910390f35b6100d06202a30081565b6101106100fb36600461121c565b60036020526000908152604090205460ff1681565b60405190151581526020016100da565b6100a061012e366004611235565b610424565b61013b6105e8565b6040516001600160a01b0390911681526020016100da565b61015b610613565b610168816202a30061067d565b50565b610173610613565b600061017e8461077d565b60008181526003602052604090205490915060ff166101e45760405162461bcd60e51b815260206004820152600f60248201527f4475616c3a204e6f7420666f756e64000000000000000000000000000000000060448201526064015b60405180910390fd5b6000846101600151116102395760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420636c6f7365642070726963650000000000000000000060448201526064016101db565b836101800151826020015110156102925760405162461bcd60e51b815260206004820152601460248201527f4475616c3a20426164207374617274206461746500000000000000000000000060448201526064016101db565b8361018001514210156102e75760405162461bcd60e51b815260206004820152601660248201527f4475616c3a204e6f742066696e6973686564207965740000000000000000000060448201526064016101db565b6102f084610839565b600081815260036020908152604091829020805460ff191690558581015186518784015160e08901516101008a01516101608b01516101808c015188519485526001600160a01b039384169785019790975296830152606082019590955260808101939093529092169083907fc73081bca7b54f25041d59f77929ae1aaf69f937dbae5655ad3757b1b5d675c69060a00160405180910390a46040805160c08101825285516001600160a01b039081168252602080830185905260e0880151909116928201929092526101008601516060820152835160808201529083015160a08201526104036103e636869003860186611252565b6103fe6103f836889003880188611252565b84610944565b610a26565b5050505050565b610412610613565b610420826103fe8484610944565b5050565b61042c610613565b60006104378261077d565b60008181526003602052604090205490915060ff166104985760405162461bcd60e51b815260206004820152600f60248201527f4475616c3a204e6f7420666f756e64000000000000000000000000000000000060448201526064016101db565b6000826101600151116104ed5760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420636c6f7365642070726963650000000000000000000060448201526064016101db565b8161018001514210156105425760405162461bcd60e51b815260206004820152601660248201527f4475616c3a204e6f742066696e6973686564207965740000000000000000000060448201526064016101db565b61054b82610839565b600081815260036020908152604091829020805460ff191690558381015184518584015160e08701516101008801516101608901516101808a015188519485526001600160a01b039384169785019790975296830152606082019590955260808101939093529092169083907f82455d326398688c853a9a20fd4bd09a62e970a0c6129a12ca24c371247acab59060a00160405180910390a45050565b6000600254421061060357506001546001600160a01b031690565b506000546001600160a01b031690565b61061b6105e8565b6001600160a01b0316336001600160a01b03161461067b5760405162461bcd60e51b815260206004820152601660248201527f4d50434d616e61676561626c653a204e6f6e204d50430000000000000000000060448201526064016101db565b565b6001600160a01b0382166106d35760405162461bcd60e51b815260206004820152601b60248201527f4d50434d616e61676561626c653a204e756c6c61626c65204d5043000000000060448201526064016101db565b6106db6105e8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03938416179091556001805490911691841691909117905561072c8142611284565b60028190556001546000546040519283526001600160a01b03918216929116907fd4f738392c346d39b1aa1a5aec7636e00ee014a495f29ce6fb1770051c4d8aff9060200160405180910390a35050565b80516020808301516040808501516060860151608087015160a088015160c08901516101208a01516101408b01516101808c0151975160009b61081c9b909a9991016001600160a01b039a8b1681526020810199909952604089019790975294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b604051602081830303815290604052805190602001209050919050565b806101400151816101600151106108ec5760808101516001600160a01b0390811660e0830181905260a083015190911603610899576108818160c00151826101200151610b82565b8160c001516108909190611284565b61010082015250565b6108a56012600a61137b565b8161014001518260c001516108ba9190611387565b6108c4919061139e565b61010082018190526101208201516108dc9190610b82565b8161010001516108909190611284565b60608101516001600160a01b0390811660e0830181905260a083015190911603610923576108818160c00151826101200151610b82565b6101408101516109356012600a61137b565b8260c001516108ba9190611387565b604080516101a081018252600080825260208083018281528385018381526060808601858152608080880187815260a0890188815260c08a0189815260e08b018a90526101008b018a90526101208b018a81526101408c018b81526101608d018c90526101808d019b909b528d516001600160a01b039081168d528f519099528e8a015189169095528d8c01518816909252998b015190951690985288820151909352888701519092529486015190925284015190925290830151610a0b90610e10611387565b8260a00151610a1a9190611284565b61018082015292915050565b610a308282610ba6565b6000610a3b8261077d565b60008181526003602052604090205490915060ff1615610a9d5760405162461bcd60e51b815260206004820152601560248201527f4475616c3a20416c72656164792063726561746564000000000000000000000060448201526064016101db565b600081815260036020908152604091829020805460ff191660011790558301518351848301516060860151608087015160a088015160c08901516101208a01516101408b01516101808c0151995198996001600160a01b03909816988b987f14d7e2e4edd0cf4d1eff920cc862deee4c183e6f09ab6b6f0db3e7da7192447598610b75989097909690959094909390929091909788526001600160a01b0396871660208901529486166040880152929094166060860152608085015260a084019290925260c083019190915260e08201526101000190565b60405180910390a4505050565b60006305f5e100610b938385611387565b610b9d919061139e565b90505b92915050565b80516001600160a01b0316610bfd5760405162461bcd60e51b815260206004820152600e60248201527f4475616c3a20426164207573657200000000000000000000000000000000000060448201526064016101db565b8151600003610c4e5760405162461bcd60e51b815260206004820152601160248201527f4475616c3a2042616420636861696e496400000000000000000000000000000060448201526064016101db565b81602001516001600160a01b03168160a001516001600160a01b03161480610c8f575081604001516001600160a01b03168160a001516001600160a01b0316145b610d015760405162461bcd60e51b815260206004820152602160248201527f4475616c3a20496e707574206d757374206265206f6e652066726f6d2070616960448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016101db565b60008160c0015111610d555760405162461bcd60e51b815260206004820152601060248201527f4475616c3a2042616420616d6f756e740000000000000000000000000000000060448201526064016101db565b6000826080015111610da95760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420746172696666207969656c640000000000000000000060448201526064016101db565b600081610140015111610dfe5760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420696e697469616c50726963650000000000000000000060448201526064016101db565b6000826060015111610e525760405162461bcd60e51b815260206004820152601e60248201527f4475616c3a2042616420746172696666207374616b696e67506572696f64000060448201526064016101db565b6040810151600003610ea65760405162461bcd60e51b815260206004820152601260248201527f4475616c3a2042616420706172656e744964000000000000000000000000000060448201526064016101db565b42816101800151116104205760405162461bcd60e51b815260206004820152601560248201527f4475616c3a204261642066696e6973682064617465000000000000000000000060448201526064016101db565b80356001600160a01b0381168114610f1157600080fd5b919050565b600060208284031215610f2857600080fd5b610b9d82610efa565b6040516101a0810167ffffffffffffffff81118282101715610f6357634e487b7160e01b600052604160045260246000fd5b60405290565b60405160c0810167ffffffffffffffff81118282101715610f6357634e487b7160e01b600052604160045260246000fd5b60006101a08284031215610fad57600080fd5b610fb5610f31565b9050610fc082610efa565b81526020820135602082015260408201356040820152610fe260608301610efa565b6060820152610ff360808301610efa565b608082015261100460a08301610efa565b60a082015260c082013560c082015261101f60e08301610efa565b60e082015261010082810135908201526101208083013590820152610140808301359082015261016080830135908201526101809182013591810191909152919050565b600080600083850361028081121561107a57600080fd5b6110848686610f9a565b935060a061019f198201121561109957600080fd5b6101a085019250604061023f19820112156110b357600080fd5b506040516040810181811067ffffffffffffffff821117156110e557634e487b7160e01b600052604160045260246000fd5b6040526102408501358152610260909401356020850152509093909250565b600060a0828403121561111657600080fd5b60405160a0810181811067ffffffffffffffff8211171561114757634e487b7160e01b600052604160045260246000fd5b6040528235815290508061115d60208401610efa565b602082015261116e60408401610efa565b604082015260608301356060820152608083013560808201525092915050565b6000808284036101608112156111a357600080fd5b6111ad8585611104565b925060c0609f19820112156111c157600080fd5b506111ca610f69565b6111d660a08501610efa565b815260c084013560208201526111ee60e08501610efa565b6040820152610100840135606082015261012084013560808201526101409093013560a08401525092909150565b60006020828403121561122e57600080fd5b5035919050565b60006101a0828403121561124857600080fd5b610b9d8383610f9a565b600060a0828403121561126457600080fd5b610b9d8383611104565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ba057610ba061126e565b600181815b808511156112d25781600019048211156112b8576112b861126e565b808516156112c557918102915b93841c939080029061129c565b509250929050565b6000826112e957506001610ba0565b816112f657506000610ba0565b816001811461130c576002811461131657611332565b6001915050610ba0565b60ff8411156113275761132761126e565b50506001821b610ba0565b5060208310610133831016604e8410600b8410161715611355575081810a610ba0565b61135f8383611297565b80600019048211156113735761137361126e565b029392505050565b6000610b9d83836112da565b8082028115828204841417610ba057610ba061126e565b6000826113bb57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122001273a2b33a6d80b2f2727cc5312ff91ced9071b4d1496088cbc086dd7bb07d064736f6c634300081100330000000000000000000000000c76281a72dbb71ae4762cda699cd3d6ba53afba

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100885760003560e01c806369b411701161005b57806369b41170146100e3578063c65a48e2146100ed578063e061054714610120578063f75c26641461013357600080fd5b8063105aeb961461008d5780631070d1bd146100a2578063221ad9a5146100b55780632e0f2625146100c8575b600080fd5b6100a061009b366004610f16565b610153565b005b6100a06100b0366004611063565b61016b565b6100a06100c336600461118e565b61040a565b6100d0601281565b6040519081526020015b60405180910390f35b6100d06202a30081565b6101106100fb36600461121c565b60036020526000908152604090205460ff1681565b60405190151581526020016100da565b6100a061012e366004611235565b610424565b61013b6105e8565b6040516001600160a01b0390911681526020016100da565b61015b610613565b610168816202a30061067d565b50565b610173610613565b600061017e8461077d565b60008181526003602052604090205490915060ff166101e45760405162461bcd60e51b815260206004820152600f60248201527f4475616c3a204e6f7420666f756e64000000000000000000000000000000000060448201526064015b60405180910390fd5b6000846101600151116102395760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420636c6f7365642070726963650000000000000000000060448201526064016101db565b836101800151826020015110156102925760405162461bcd60e51b815260206004820152601460248201527f4475616c3a20426164207374617274206461746500000000000000000000000060448201526064016101db565b8361018001514210156102e75760405162461bcd60e51b815260206004820152601660248201527f4475616c3a204e6f742066696e6973686564207965740000000000000000000060448201526064016101db565b6102f084610839565b600081815260036020908152604091829020805460ff191690558581015186518784015160e08901516101008a01516101608b01516101808c015188519485526001600160a01b039384169785019790975296830152606082019590955260808101939093529092169083907fc73081bca7b54f25041d59f77929ae1aaf69f937dbae5655ad3757b1b5d675c69060a00160405180910390a46040805160c08101825285516001600160a01b039081168252602080830185905260e0880151909116928201929092526101008601516060820152835160808201529083015160a08201526104036103e636869003860186611252565b6103fe6103f836889003880188611252565b84610944565b610a26565b5050505050565b610412610613565b610420826103fe8484610944565b5050565b61042c610613565b60006104378261077d565b60008181526003602052604090205490915060ff166104985760405162461bcd60e51b815260206004820152600f60248201527f4475616c3a204e6f7420666f756e64000000000000000000000000000000000060448201526064016101db565b6000826101600151116104ed5760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420636c6f7365642070726963650000000000000000000060448201526064016101db565b8161018001514210156105425760405162461bcd60e51b815260206004820152601660248201527f4475616c3a204e6f742066696e6973686564207965740000000000000000000060448201526064016101db565b61054b82610839565b600081815260036020908152604091829020805460ff191690558381015184518584015160e08701516101008801516101608901516101808a015188519485526001600160a01b039384169785019790975296830152606082019590955260808101939093529092169083907f82455d326398688c853a9a20fd4bd09a62e970a0c6129a12ca24c371247acab59060a00160405180910390a45050565b6000600254421061060357506001546001600160a01b031690565b506000546001600160a01b031690565b61061b6105e8565b6001600160a01b0316336001600160a01b03161461067b5760405162461bcd60e51b815260206004820152601660248201527f4d50434d616e61676561626c653a204e6f6e204d50430000000000000000000060448201526064016101db565b565b6001600160a01b0382166106d35760405162461bcd60e51b815260206004820152601b60248201527f4d50434d616e61676561626c653a204e756c6c61626c65204d5043000000000060448201526064016101db565b6106db6105e8565b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03938416179091556001805490911691841691909117905561072c8142611284565b60028190556001546000546040519283526001600160a01b03918216929116907fd4f738392c346d39b1aa1a5aec7636e00ee014a495f29ce6fb1770051c4d8aff9060200160405180910390a35050565b80516020808301516040808501516060860151608087015160a088015160c08901516101208a01516101408b01516101808c0151975160009b61081c9b909a9991016001600160a01b039a8b1681526020810199909952604089019790975294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b604051602081830303815290604052805190602001209050919050565b806101400151816101600151106108ec5760808101516001600160a01b0390811660e0830181905260a083015190911603610899576108818160c00151826101200151610b82565b8160c001516108909190611284565b61010082015250565b6108a56012600a61137b565b8161014001518260c001516108ba9190611387565b6108c4919061139e565b61010082018190526101208201516108dc9190610b82565b8161010001516108909190611284565b60608101516001600160a01b0390811660e0830181905260a083015190911603610923576108818160c00151826101200151610b82565b6101408101516109356012600a61137b565b8260c001516108ba9190611387565b604080516101a081018252600080825260208083018281528385018381526060808601858152608080880187815260a0890188815260c08a0189815260e08b018a90526101008b018a90526101208b018a81526101408c018b81526101608d018c90526101808d019b909b528d516001600160a01b039081168d528f519099528e8a015189169095528d8c01518816909252998b015190951690985288820151909352888701519092529486015190925284015190925290830151610a0b90610e10611387565b8260a00151610a1a9190611284565b61018082015292915050565b610a308282610ba6565b6000610a3b8261077d565b60008181526003602052604090205490915060ff1615610a9d5760405162461bcd60e51b815260206004820152601560248201527f4475616c3a20416c72656164792063726561746564000000000000000000000060448201526064016101db565b600081815260036020908152604091829020805460ff191660011790558301518351848301516060860151608087015160a088015160c08901516101208a01516101408b01516101808c0151995198996001600160a01b03909816988b987f14d7e2e4edd0cf4d1eff920cc862deee4c183e6f09ab6b6f0db3e7da7192447598610b75989097909690959094909390929091909788526001600160a01b0396871660208901529486166040880152929094166060860152608085015260a084019290925260c083019190915260e08201526101000190565b60405180910390a4505050565b60006305f5e100610b938385611387565b610b9d919061139e565b90505b92915050565b80516001600160a01b0316610bfd5760405162461bcd60e51b815260206004820152600e60248201527f4475616c3a20426164207573657200000000000000000000000000000000000060448201526064016101db565b8151600003610c4e5760405162461bcd60e51b815260206004820152601160248201527f4475616c3a2042616420636861696e496400000000000000000000000000000060448201526064016101db565b81602001516001600160a01b03168160a001516001600160a01b03161480610c8f575081604001516001600160a01b03168160a001516001600160a01b0316145b610d015760405162461bcd60e51b815260206004820152602160248201527f4475616c3a20496e707574206d757374206265206f6e652066726f6d2070616960448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016101db565b60008160c0015111610d555760405162461bcd60e51b815260206004820152601060248201527f4475616c3a2042616420616d6f756e740000000000000000000000000000000060448201526064016101db565b6000826080015111610da95760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420746172696666207969656c640000000000000000000060448201526064016101db565b600081610140015111610dfe5760405162461bcd60e51b815260206004820152601660248201527f4475616c3a2042616420696e697469616c50726963650000000000000000000060448201526064016101db565b6000826060015111610e525760405162461bcd60e51b815260206004820152601e60248201527f4475616c3a2042616420746172696666207374616b696e67506572696f64000060448201526064016101db565b6040810151600003610ea65760405162461bcd60e51b815260206004820152601260248201527f4475616c3a2042616420706172656e744964000000000000000000000000000060448201526064016101db565b42816101800151116104205760405162461bcd60e51b815260206004820152601560248201527f4475616c3a204261642066696e6973682064617465000000000000000000000060448201526064016101db565b80356001600160a01b0381168114610f1157600080fd5b919050565b600060208284031215610f2857600080fd5b610b9d82610efa565b6040516101a0810167ffffffffffffffff81118282101715610f6357634e487b7160e01b600052604160045260246000fd5b60405290565b60405160c0810167ffffffffffffffff81118282101715610f6357634e487b7160e01b600052604160045260246000fd5b60006101a08284031215610fad57600080fd5b610fb5610f31565b9050610fc082610efa565b81526020820135602082015260408201356040820152610fe260608301610efa565b6060820152610ff360808301610efa565b608082015261100460a08301610efa565b60a082015260c082013560c082015261101f60e08301610efa565b60e082015261010082810135908201526101208083013590820152610140808301359082015261016080830135908201526101809182013591810191909152919050565b600080600083850361028081121561107a57600080fd5b6110848686610f9a565b935060a061019f198201121561109957600080fd5b6101a085019250604061023f19820112156110b357600080fd5b506040516040810181811067ffffffffffffffff821117156110e557634e487b7160e01b600052604160045260246000fd5b6040526102408501358152610260909401356020850152509093909250565b600060a0828403121561111657600080fd5b60405160a0810181811067ffffffffffffffff8211171561114757634e487b7160e01b600052604160045260246000fd5b6040528235815290508061115d60208401610efa565b602082015261116e60408401610efa565b604082015260608301356060820152608083013560808201525092915050565b6000808284036101608112156111a357600080fd5b6111ad8585611104565b925060c0609f19820112156111c157600080fd5b506111ca610f69565b6111d660a08501610efa565b815260c084013560208201526111ee60e08501610efa565b6040820152610100840135606082015261012084013560808201526101409093013560a08401525092909150565b60006020828403121561122e57600080fd5b5035919050565b60006101a0828403121561124857600080fd5b610b9d8383610f9a565b600060a0828403121561126457600080fd5b610b9d8383611104565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ba057610ba061126e565b600181815b808511156112d25781600019048211156112b8576112b861126e565b808516156112c557918102915b93841c939080029061129c565b509250929050565b6000826112e957506001610ba0565b816112f657506000610ba0565b816001811461130c576002811461131657611332565b6001915050610ba0565b60ff8411156113275761132761126e565b50506001821b610ba0565b5060208310610133831016604e8410600b8410161715611355575081810a610ba0565b61135f8383611297565b80600019048211156113735761137361126e565b029392505050565b6000610b9d83836112da565b8082028115828204841417610ba057610ba061126e565b6000826113bb57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122001273a2b33a6d80b2f2727cc5312ff91ced9071b4d1496088cbc086dd7bb07d064736f6c63430008110033

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

0000000000000000000000000c76281a72dbb71ae4762cda699cd3d6ba53afba

-----Decoded View---------------
Arg [0] : _MPC (address): 0x0c76281A72dbb71AE4762CdA699Cd3D6Ba53aFBa

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000c76281a72dbb71ae4762cda699cd3d6ba53afba


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xDe6B4964c4384BcDfA150a4A8bE9865C5b91E29C
Net Worth in USD
$20.03

Net Worth in ETH
0.0079

Token Allocations
AXOME 63.57%
CRO 5.44%
CAW 5.00%
Others 25.99%
Chain Token Portfolio % Price Amount Value
BASE63.57%$0.019895640$12.73
ETH5.44%$0.07953713.7106$1.09
ETH5.00%<$0.00000132,028,985.1927$1
ETH3.44%$0.9985550.6907$0.6897
ETH3.20%$80,3350.00000799$0.6418
ETH2.27%$131.380.00346226$0.4548
ETH2.12%$10.4234$0.4238
ETH1.76%$0.0002191,613.3462$0.353
ETH1.58%$0.9996950.3162$0.3161
ETH1.54%<$0.00000116,053,221.2726$0.3077
ETH1.03%$0.01202817.1348$0.206
ETH0.81%$0.000883183.5921$0.1621
ETH0.70%$1.860.0758$0.1409
ETH0.55%$2,522.770.0000433$0.1092
ETH<0.01%$2,535.470.000000130365$0.000331
AVAX2.49%$0.9996910.4987$0.4985
AVAX1.23%$2,515.650.00009766$0.2456
AVAX0.80%$80,802.590.00000198$0.1599
AVAX<0.01%$10.10.000000289956$0.000003
POL1.93%$0.001216317.6864$0.3862
POL0.55%$11.030.01$0.1103
Loading...
Loading
Loading...
Loading
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.