Contract Address Details

0x020c7303664bc88ae92cE3D380BF361E03B78B81

Token
Feeds NFT Sticker (FSTK)
Creator
0x3000b4–4a001e at 0x38cf1d–feac08
Balance
0 ELA
Tokens
Fetching tokens...
Transactions
Transfers
Gas Used
Last Balance Update
24519328
Contract name:
FeedsContractProxy




Optimization enabled
true
Compiler version
v0.7.6+commit.7338295f




Optimization runs
200
EVM Version
istanbul




Verified at
2021-12-03 08:19:30.716186Z

Constructor Arguments

000000000000000000000000ab5bb5fcefc9703814af68077387bc09be12190b

Arg [0] (address) : 0xab5bb5fcefc9703814af68077387bc09be12190b

              

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity =0.7.6;
pragma abicoder v2;
/**
* @dev Interface of the ERC165 standard as defined in the EIP.
*/
interface IERC165 {
/**
* @notice Query if a contract implements an interface
* @param interfaceID The interface identifier, as specified in ERC-165
* @dev Interface identification is specified in ERC-165. This function
* uses less than 30,000 gas.
* @return `true` if the contract implements `interfaceID` and
* `interfaceID` is not 0xffffffff, `false` otherwise
*/
function supportsInterface(bytes4 interfaceID) external view returns (bool);
}
/**
* @dev Proxy contract supporting upgradeability, based on a simplified version of EIP-1822
*/
contract FeedsContractProxy {
/**
* @notice Save the code address
* @param _codeAddress The initial code address of the logic contract
* @dev Code position in storage is
* keccak256("PROXIABLE") = "0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7"
*/
constructor(address _codeAddress) {
/**
* @dev ERC-165 identifier for the `FeedsContractProxiable` interface support, which is
* bytes4(keccak256("updateCodeAddress(address)")) ^ bytes4(keccak256("getCodeAddress()")) = "0xc1fdc5a0"
*/
require(IERC165(_codeAddress).supportsInterface(0xc1fdc5a0), "Contract address not proxiable");
// solium-disable-next-line security/no-inline-assembly
assembly {
sstore(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7, _codeAddress)
}
}
/**
* @notice Delegate all function calls to the logic contract
*/
function _fallback() internal {
// solium-disable-next-line security/no-inline-assembly
assembly {
let codeAddress := sload(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7)
calldatacopy(0x0, 0x0, calldatasize())
let success := delegatecall(sub(gas(), 10000), codeAddress, 0x0, calldatasize(), 0, 0)
let retSz := returndatasize()
returndatacopy(0, 0, retSz)
switch success
case 0 {
revert(0, retSz)
}
default {
return(0, retSz)
}
}
}
/**
* @dev Fallback function that delegates calls to the logic contract. Will run if no other
* function in the contract matches the call data.
*/
fallback() external payable {
_fallback();
}
/**
* @dev Fallback function that delegates calls to the logic contract. Will run if call data
* is empty.
*/
receive() external payable {
_fallback();
}
}

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_codeAddress","internalType":"address"}]},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"}]
            

Deployed ByteCode

0x608060405236601057600e6013565b005b600e5b7fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf754600036818237808036818561270f195a01f491503d8082833e8280156058578183f35b8183fdfea26469706673582212204d1c1650fca7c4d8a82b8c0c9f3048d31e13a6b87ad5390a0af1188141e8c54064736f6c63430007060033