Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
182.027255470000759997 M12796
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.999466341389036923 M12796Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Minimal Proxy Contract for 0xba5e31c01a002b0ab7e287fbd8b7acf2d8f9e33a
Contract Name:
TokenVaultProxy
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.8.0; import {InitializedProxy} from "./InitializedProxy.sol"; import {IImpls} from "../../interfaces/IImpls.sol"; /** * @title InitializedProxy * @author 0xkongamoto */ contract TokenVaultProxy is InitializedProxy { constructor(address _settings) InitializedProxy(_settings) {} /** * @dev Returns the current implementation address. */ function _implementation() internal view virtual override returns (address impl) { return IImpls(settings).vaultImpl(); } }
pragma solidity ^0.8.0; /** * @title SettingStorage * @author 0xkongamoto */ contract SettingStorage { // address of logic contract address public immutable settings; // ======== Constructor ========= constructor(address _settings) { require(_settings != address(0), "no zero address"); settings = _settings; } }
pragma solidity ^0.8.0; import {SettingStorage} from "./SettingStorage.sol"; import {Proxy} from "../openzeppelin/proxy/Proxy.sol"; /** * @title InitializedProxy * @author 0xkongamoto */ contract InitializedProxy is SettingStorage, Proxy { // ======== Constructor ========= constructor(address _settings) SettingStorage(_settings) {} /** * @dev Returns the current implementation address. */ function _implementation() internal view virtual override returns (address impl) { return settings; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to * be specified by overriding the virtual {_implementation} function. * * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a * different contract through the {_delegate} function. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internall call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { // solhint-disable-next-line no-inline-assembly assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internall call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback () external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive () external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overriden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual { } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IImpls { function vaultImpl() external view returns (address); function stakingImpl() external view returns (address); function treasuryImpl() external view returns (address); function governmentImpl() external view returns (address); function exchangeImpl() external view returns (address); function bnftImpl() external view returns (address); }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
[{"inputs":[{"internalType":"address","name":"_settings","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"settings","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
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.