Mumbai Testnet

Contract

0x7887c80C1Deb3282cCD6063c103d435B49e6Ba7C

Overview

MATIC Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 MATIC

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Value
Transfer263902742022-05-20 10:08:25679 days ago1653041305IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000145262.8227
Approve248506432022-02-12 8:34:02776 days ago1644654842IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.93999998
Transfer248280332022-02-11 15:22:18776 days ago1644592938IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000099741.94
Approve248277992022-02-11 15:10:46776 days ago1644592246IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.94
Approve248273272022-02-11 14:49:26776 days ago1644590966IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.94
Approve248270272022-02-11 14:34:54776 days ago1644590094IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.93999999
Approve248266092022-02-11 14:15:46776 days ago1644588946IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.93999999
Approve248240842022-02-11 12:28:08777 days ago1644582488IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.94
Approve248240662022-02-11 12:27:32777 days ago1644582452IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.93999999
Approve248238432022-02-11 12:18:54777 days ago1644581934IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.93999998
Approve248232142022-02-11 11:53:56777 days ago1644580436IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.94
Approve248224042022-02-11 11:19:54777 days ago1644578394IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000090241.94
Transfer248203002022-02-11 9:55:02777 days ago1644573302IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.50000001
Transfer248202972022-02-11 9:54:50777 days ago1644573290IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.50000001
Transfer248202942022-02-11 9:54:38777 days ago1644573278IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.50000001
Transfer248202922022-02-11 9:54:30777 days ago1644573270IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128592.50000001
Transfer248202892022-02-11 9:54:18777 days ago1644573258IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.50000001
Transfer248202872022-02-11 9:54:06777 days ago1644573246IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.50000001
Transfer248202822022-02-11 9:53:56777 days ago1644573236IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.50000001
Transfer248202772022-02-11 9:53:46777 days ago1644573226IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.5
Transfer248202652022-02-11 9:53:22777 days ago1644573202IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.5
Transfer248202532022-02-11 9:52:58777 days ago1644573178IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.5
Transfer248202462022-02-11 9:52:44777 days ago1644573164IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.5
Transfer248202412022-02-11 9:52:34777 days ago1644573154IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.5
Transfer248202362022-02-11 9:52:24777 days ago1644573144IN
0x7887c80C...B49e6Ba7C
0 MATIC0.000128622.5
View all transactions

Parent Txn Hash Block From To Value
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xA4abf1B7...77c4225A4
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Dai

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : Dai.sol
// SPDX-License-Identifier: MIT
pragma solidity =0.8.4;

contract Dai {
  // MODEL

  address public owner;
  address public pendingOwner;

  string public constant name = "Dai Stablecoin";
  string public constant symbol = "DAI";
  uint8 public immutable decimals = 18;

  address private constant ZERO = address(type(uint160).min);

  uint256 public totalSupply;
  mapping(address => uint256) public balanceOf;
  mapping(address => mapping(address => uint256)) public allowance;

  constructor(address _owner) {
    require(_owner != address(0), "Zero");
    owner = _owner;
  }

  // EVENT

  event Approval(
    address indexed _owner,
    address indexed _spender,
    uint256 _value
  );

  event Transfer(address indexed _from, address indexed _to, uint256 _value);

  // UPDATE

  function approve(address _spender, uint256 _value) external returns (bool) {
    _approve(msg.sender, _spender, _value);
    return true;
  }

  function transfer(address _to, uint256 _value) external returns (bool) {
    _transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  ) external returns (bool) {
    if (
      msg.sender != _from && allowance[_from][msg.sender] != type(uint256).max
    ) {
      allowance[_from][msg.sender] -= _value;

      emit Approval(_from, msg.sender, allowance[_from][msg.sender]);
    }
    _transfer(_from, _to, _value);
    return true;
  }

  function mint() external {
    totalSupply += 1000000000000000000000;
    balanceOf[msg.sender] += 1000000000000000000000;
    emit Transfer(ZERO, msg.sender, 1000000000000000000000);
  }

  function mint(uint256 _value) external {
    require(msg.sender == owner, "Forbidden");
    totalSupply += _value;
    balanceOf[msg.sender] += _value;
    emit Transfer(ZERO, msg.sender, _value);
  }

  // HELPER

  function _approve(
    address _owner,
    address _spender,
    uint256 _value
  ) private {
    allowance[_owner][_spender] = _value;
    emit Approval(_owner, _spender, _value);
  }

  function _transfer(
    address _from,
    address _to,
    uint256 _value
  ) private {
    balanceOf[_from] -= _value;
    balanceOf[_to] += _value;
    emit Transfer(_from, _to, _value);
  }

  function setOwner(address _pendingOwner) external {
    require(msg.sender == owner, "Forbidden");
    require(_pendingOwner != address(0), "Zero");
    pendingOwner = _pendingOwner;
  }

  function acceptOwner() external {
    require(msg.sender == pendingOwner, "Forbidden");
    owner = msg.sender;
  }
}

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwner","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":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pendingOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610260578063dd62ed3e14610273578063e30c39781461029e578063ebbc4965146102b157600080fd5b806370a08231146101e05780638da5cb5b1461020057806395d89b411461022b578063a0712d681461024d57600080fd5b806313af4035116100d357806313af40351461016a57806318160ddd1461017d57806323b872dd14610194578063313ce567146101a757600080fd5b806306fdde03146100fa578063095ea7b31461013d5780631249c58b14610160575b600080fd5b6101276040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b60405161013491906107b9565b60405180910390f35b61015061014b366004610778565b6102b9565b6040519015158152602001610134565b6101686102cf565b005b6101686101783660046106ea565b61035f565b61018660025481565b604051908152602001610134565b6101506101a236600461073d565b6103f3565b6101ce7f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff9091168152602001610134565b6101866101ee3660046106ea565b60036020526000908152604090205481565b600054610213906001600160a01b031681565b6040516001600160a01b039091168152602001610134565b6101276040518060400160405280600381526020016244414960e81b81525081565b61016861025b3660046107a1565b6104e0565b61015061026e366004610778565b610580565b61018661028136600461070b565b600460209081526000928352604080842090915290825290205481565b600154610213906001600160a01b031681565b61016861058d565b60006102c63384846105cb565b50600192915050565b683635c9adc5dea00000600260008282546102ea919061082f565b90915550503360009081526003602052604081208054683635c9adc5dea00000929061031790849061082f565b9091555050604051683635c9adc5dea00000815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3565b6000546001600160a01b031633146103925760405162461bcd60e51b81526004016103899061080c565b60405180910390fd5b6001600160a01b0381166103d15760405162461bcd60e51b8152600401610389906020808252600490820152635a65726f60e01b604082015260600190565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000336001600160a01b0385161480159061043357506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b156104cb576001600160a01b03841660009081526004602090815260408083203384529091528120805484929061046b908490610847565b90915550506001600160a01b038416600081815260046020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b6104d684848461062d565b5060019392505050565b6000546001600160a01b0316331461050a5760405162461bcd60e51b81526004016103899061080c565b806002600082825461051c919061082f565b9091555050336000908152600360205260408120805483929061054090849061082f565b909155505060405181815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b60006102c633848461062d565b6001546001600160a01b031633146105b75760405162461bcd60e51b81526004016103899061080c565b600080546001600160a01b03191633179055565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831660009081526003602052604081208054839290610655908490610847565b90915550506001600160a01b0382166000908152600360205260408120805483929061068290849061082f565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161062091815260200190565b80356001600160a01b03811681146106e557600080fd5b919050565b6000602082840312156106fb578081fd5b610704826106ce565b9392505050565b6000806040838503121561071d578081fd5b610726836106ce565b9150610734602084016106ce565b90509250929050565b600080600060608486031215610751578081fd5b61075a846106ce565b9250610768602085016106ce565b9150604084013590509250925092565b6000806040838503121561078a578182fd5b610793836106ce565b946020939093013593505050565b6000602082840312156107b2578081fd5b5035919050565b6000602080835283518082850152825b818110156107e5578581018301518582016040015282016107c9565b818111156107f65783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600990820152682337b93134b23232b760b91b604082015260600190565b600082198211156108425761084261085e565b500190565b6000828210156108595761085961085e565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220429b50d52d5e6bb727c41482edad853357eb2c070928a43ab98d978160623eaa64736f6c63430008040033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.