0xe5ce1fc0c001b9d5053844ae519f2cf48687206a
deployer: unknown
relevance score: 30
status: identified
bytecode: 1979 bytes
DECOMPILED SOLIDITY (Heimdall)
VERIFY
// SPDX-License-Identifier: MIT
pragma solidity > = 0.8 . 0 ;
/// @title Decompiled Contract
/// @author Jonathan Becker <jonathan@jbecker.dev>
/// @custom:version heimdall-rs v0.9.2
///
/// @notice This contract was decompiled using the heimdall-rs decompiler.
/// It was generated directly by tracing the EVM opcodes from this contract.
/// As a result, it may not compile or even be valid solidity code.
/// Despite this, it should be obvious what each function does. Overall
/// logic should have been preserved throughout decompiling.
///
/// @custom:github You can find the open-source decompiler here:
/// https://heimdall.rs
contract DecompiledContract {
uint256 public constant RECIPIENT = 872240118219848495597058231834296814826443694369 ;
error SafeERC20FailedOperation( address ) ;
/// @custom:selector 0x6568a279
/// @custom:signature Unresolved_6568a279(uint256 arg0, address arg1) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["address", "uint160", "bytes20", "int160"]
function Unresolved_6568a279( uint256 arg0, address arg1) public payable {
require ( ! arg0 > 0xffffffffffffffff ) ;
require ( ! ( arg0) > 0xffffffffffffffff ) ;
require ( ! 0 < ( arg0) ) ;
require ( 0 < ( arg0) ) ;
require ( ! ( ( ( 0 + ( ( 0x04 + arg0) + 0x20 ) ) + 0x20 ) - ( 0 + ( ( 0x04 + arg0) + 0x20 ) ) ) < 0x20 ) ;
require ( ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) = = ( address ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) ) ) ;
require ( address ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) = = 0 ) ;
address var_b = address ( this) ;
( bool success, bytes memory ret0) = address ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) . Unresolved_70a08231( var_b) ; // staticcall
uint256 var_c = var_c + ( uint248 ( ret0. length + 0x1f ) ) ;
require ( ! ( ( var_c + ret0. length) - var_c) < 0x20 ) ;
require ( var_d = = ( var_d) ) ;
require ( ! ( var_d) > 0 ) ;
require ( address ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) = = 0 ) ;
var_e = 0x98c89980d1eae247ada3636ae27648f78e66e121 ;
var_c = ( 0x24 + var_c) + 0x40 ;
( bool success, bytes memory ret0) = address ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) . Unresolved_a9059cbb( var_e) ; // call
require ( ret0. length = = 0 , CustomError_5274afe7( ) ) ;
require ( ! ( address ( ( 0 + ( arg0 + 0x20 ) ) + 0 ) . code. length = = 0 ) , CustomError_5274afe7( ) ) ;
require ( ! ( ! var_l = = 0x01 ) , CustomError_5274afe7( ) ) ;
( bool success, bytes memory ret0) = address ( 0x98c89980d1eae247ada3636ae27648f78e66e121 ) . transfer( var_d) ;
require ( ret0. length = = 0 , "Transfer failed" ) ;
if ( ! address ( this) . balance > 0 ) {
}
}
/// @custom:selector 0xf3fef3a3
/// @custom:signature withdraw(address arg0, uint256 arg1) public payable
/// @param arg0 ["address", "uint160", "bytes20", "int160"]
/// @param arg1 ["uint256", "bytes32", "int256"]
function withdraw( address arg0, uint256 arg1) public payable {
require ( arg0 = = ( address ( arg0) ) ) ;
require ( arg1 = = arg1) ;
require ( address ( arg0) = = 0 ) ;
var_a = 0x98c89980d1eae247ada3636ae27648f78e66e121 ;
uint256 var_d = ( 0x24 + var_d) + 0x40 ;
( bool success, bytes memory ret0) = address ( arg0) . Unresolved_a9059cbb( var_a) ; // call
require ( ret0. length = = 0 , CustomError_5274afe7( ) ) ;
require ( ! ( address ( arg0) . code. length = = 0 ) , CustomError_5274afe7( ) ) ;
require ( ! ( ! var_i = = 0x01 ) , CustomError_5274afe7( ) ) ;
( bool success, bytes memory ret0) = address ( 0x98c89980d1eae247ada3636ae27648f78e66e121 ) . transfer( arg1) ;
require ( ret0. length = = 0 , "Transfer failed" ) ;
}
}
ABI
[
{
"type": "function",
"name": "RECIPIENT",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure"
},
{
"type": "function",
"name": "Unresolved_6568a279",
"inputs": [
{
"name": "arg0",
"type": "uint256"
},
{
"name": "arg1",
"type": "address"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "withdraw",
"inputs": [
{
"name": "arg0",
"type": "address"
},
{
"name": "arg1",
"type": "uint256"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "error",
"name": "SafeERC20FailedOperation",
"inputs": [
{
"name": "arg0",
"type": "address"
}
]
}
]
UNKNOWN SELECTORS (0)
These selectors are not yet in the research database — they are being
investigated and will be added as known functions once identified. They are also marked
in red in the decompiled Solidity above.
KNOWN CLUSTER ADDRESSES IN THIS BYTECODE (1)
0x98c89980d1eae247ada3636ae27648f78e66e121 (Pioneer_E121)
VERIFY
CSV
on-chain verify terminal
ⓘ
Query any address live from your own browser. code/owner/symbol/supply/storage/impl read directly from the PulseChain RPC - these are live on-chain facts anyone can reproduce. An address can be a wallet (EOA) or a contract ; use code <addr> to tell them apart (no code = wallet). The trace command is different: it uses a pre-scanned dataset (not live), still being expanded block-by-block, so some addresses aren't in it yet. Nothing is sent or logged.
✕
pDAI-1$