ETH Price: $3,417.02 (+3.53%)

Token

₡ABIN (₡ABIN)
 

Overview

Max Total Supply

1,000,000 ₡ABIN

Holders

153

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Mirror: CNMA
Balance
64 ₡ABIN

Value
$0.00
0x445d959751d21b6A460B30D0cD0c88CE63B01847
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MirrorProxy

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion
File 1 of 1 : MirrorProxy.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

/**
 * @title MirrorProxy
 * @author MirrorXYZ
 * The MirrorProxy contract is used to deploy minimal contracts for multiple
 * economic producers on the Mirror ecosystem (e.g. crowdfunds, editions). The
 * proxies are used with the proxy-relayer pattern. The proxy delegates calls
 * to a relayer contract that calls into the storage contract. The proxy uses the
 * EIP-1967 standard to store the "implementation" logic, which in our case is
 * the relayer contract. The relayer logic is directly stored into the standard
 * slot using `sstore` in the constructor, and read using `sload` in the fallback
 * function.
 */
contract MirrorProxy {
    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant _IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @notice Initializes a proxy by delegating logic to the relayer,
     * and reverts if the call is not successful. Stores relayer logic.
     * @param relayer - the relayer holds the logic for all proxies
     * @param initializationData - initialization call
     */
    constructor(address relayer, bytes memory initializationData) {
        // Delegatecall into the relayer, supplying initialization calldata.
        (bool ok, ) = relayer.delegatecall(initializationData);

        // Revert and include revert data if delegatecall to implementation reverts.
        if (!ok) {
            assembly {
                returndatacopy(0, 0, returndatasize())
                revert(0, returndatasize())
            }
        }

        assembly {
            sstore(_IMPLEMENTATION_SLOT, relayer)
        }
    }

    /**
     * @notice When any function is called on this contract, we delegate to
     * the logic contract stored in the implementation storage slot.
     */
    fallback() external payable {
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(
                gas(),
                sload(_IMPLEMENTATION_SLOT),
                ptr,
                calldatasize(),
                0,
                0
            )
            let size := returndatasize()
            returndatacopy(ptr, 0, size)

            switch result
            case 0 {
                revert(ptr, size)
            }
            default {
                return(ptr, size)
            }
        }
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"relayer","type":"address"},{"internalType":"bytes","name":"initializationData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]

608060405234801561001057600080fd5b5060405161028238038061028283398101604081905261002f916100c5565b6000826001600160a01b0316826040516100499190610193565b600060405180830381855af49150503d8060008114610084576040519150601f19603f3d011682016040523d82523d6000602084013e610089565b606091505b505090508061009c573d6000803e3d6000fd5b50507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc556101f5565b600080604083850312156100d857600080fd5b82516001600160a01b03811681146100ef57600080fd5b60208401519092506001600160401b038082111561010c57600080fd5b818501915085601f83011261012057600080fd5b815181811115610132576101326101df565b604051601f8201601f19908116603f0116810190838211818310171561015a5761015a6101df565b8160405282815288602084870101111561017357600080fd5b6101848360208301602088016101af565b80955050505050509250929050565b600082516101a58184602087016101af565b9190910192915050565b60005b838110156101ca5781810151838201526020016101b2565b838111156101d9576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b607f806102036000396000f3fe6080604052604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e8180156045578184f35b8184fdfea264697066735822122007dbd558715ae23a206103620ae265d840dc6216091d3210799b3b7f0a24734964736f6c6343000806003300000000000000000000000062294f4b4d6e3f1a189ac1a6518f8c861a830ff7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001244fd35acb000000000000000000000000522c6b0aa5a14e1771aab5646247349ffa9e511100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000007e282a14142494e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007e282a14142494e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e8180156045578184f35b8184fdfea264697066735822122007dbd558715ae23a206103620ae265d840dc6216091d3210799b3b7f0a24734964736f6c63430008060033

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

00000000000000000000000062294f4b4d6e3f1a189ac1a6518f8c861a830ff7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001244fd35acb000000000000000000000000522c6b0aa5a14e1771aab5646247349ffa9e511100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000007e282a14142494e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007e282a14142494e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : relayer (address): 0x62294f4B4D6E3f1a189ac1a6518F8c861A830ff7
Arg [1] : initializationData (bytes): 0x4fd35acb000000000000000000000000522c6b0aa5a14e1771aab5646247349ffa9e511100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000d3c21bcecceda100000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000007e282a14142494e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007e282a14142494e00000000000000000000000000000000000000000000000000

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 00000000000000000000000062294f4b4d6e3f1a189ac1a6518f8c861a830ff7
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000124
Arg [3] : 4fd35acb000000000000000000000000522c6b0aa5a14e1771aab5646247349f
Arg [4] : fa9e511100000000000000000000000000000000000000000000000000000000
Arg [5] : 000000a000000000000000000000000000000000000000000000000000000000
Arg [6] : 000000e000000000000000000000000000000000000000000000d3c21bcecced
Arg [7] : a100000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000001200000000000000000000000000000000000000000000000000000000
Arg [9] : 00000007e282a14142494e000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [11] : 00000007e282a14142494e000000000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000000


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.