Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
SigmaFallThrough
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0; import "./interfaces/IERC20.sol"; import "@openzeppelin/contracts/proxy/Proxy.sol"; contract SigmaFallThrough is Proxy { address internal constant FFF = 0xaBAfA52D3d5A2c18A4C1Ae24480D22B831fC0413; address internal immutable drainReversalImplementation; constructor(address _drainReversalImplementation) { drainReversalImplementation = _drainReversalImplementation; } function _implementation() internal view virtual override returns (address) { if (address(this) == FFF) { return drainReversalImplementation; } return 0x7B3B2B39CbdBddaDC13D8559D82c054b9C2fd5f3; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0; interface IERC20 { event Approval(address indexed src, address indexed dst, uint256 amt); event Transfer(address indexed src, address indexed dst, uint256 amt); function symbol() external view returns (string memory); function name() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.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 { } }
{ "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "none", "useLiteralContent": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_drainReversalImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516101183803806101188339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b031660b4610064600039806047525060b46000f3fe608060405236601057600e6013565b005b600e5b60196025565b602560216027565b6084565b565b60003073abafa52d3d5a2c18a4c1ae24480d22b831fc04131415606a57507f00000000000000000000000000000000000000000000000000000000000000006081565b50737b3b2b39cbdbddadc13d8559d82c054b9c2fd5f35b90565b3660008037600080366000845af43d6000803e80801560a2573d6000f35b3d6000fdfea164736f6c6343000706000a000000000000000000000000c4f7f1ca35046b58e9f34de8d6f667b6cadf0101
Deployed Bytecode
0x608060405236601057600e6013565b005b600e5b60196025565b602560216027565b6084565b565b60003073abafa52d3d5a2c18a4c1ae24480d22b831fc04131415606a57507f000000000000000000000000c4f7f1ca35046b58e9f34de8d6f667b6cadf01016081565b50737b3b2b39cbdbddadc13d8559d82c054b9c2fd5f35b90565b3660008037600080366000845af43d6000803e80801560a2573d6000f35b3d6000fdfea164736f6c6343000706000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c4f7f1ca35046b58e9f34de8d6f667b6cadf0101
-----Decoded View---------------
Arg [0] : _drainReversalImplementation (address): 0xC4f7F1Ca35046B58e9F34DE8D6f667B6caDF0101
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c4f7f1ca35046b58e9f34de8d6f667b6cadf0101
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
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.