Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
17017190 | 659 days ago | 0 ETH | |||||
17017190 | 659 days ago | 0 ETH | |||||
16994449 | 662 days ago | 0 ETH | |||||
16994449 | 662 days ago | 0 ETH | |||||
16994418 | 662 days ago | 0 ETH | |||||
16994418 | 662 days ago | 0 ETH | |||||
16994400 | 662 days ago | 0 ETH | |||||
16994400 | 662 days ago | 0 ETH | |||||
16994397 | 662 days ago | 0 ETH | |||||
16994397 | 662 days ago | 0 ETH | |||||
16994387 | 662 days ago | 0 ETH | |||||
16994387 | 662 days ago | 0 ETH | |||||
16994381 | 662 days ago | 0 ETH | |||||
16994381 | 662 days ago | 0 ETH | |||||
16994365 | 662 days ago | 0 ETH | |||||
16994365 | 662 days ago | 0 ETH | |||||
16994360 | 662 days ago | 0 ETH | |||||
16994360 | 662 days ago | 0 ETH | |||||
16994350 | 662 days ago | 0 ETH | |||||
16994350 | 662 days ago | 0 ETH | |||||
16994344 | 662 days ago | 0 ETH | |||||
16994344 | 662 days ago | 0 ETH | |||||
16994327 | 662 days ago | 0 ETH | |||||
16994327 | 662 days ago | 0 ETH | |||||
16994320 | 662 days ago | 0 ETH |
Loading...
Loading
Minimal Proxy Contract for 0x64de999ce2fcbcf4f37ab16341de78ddf8722ad2
Contract Name:
HEXStakeInstance
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-02-20 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.9; /* This contract is a subsidiary of the Hedron contract. The Hedron * * contract can be found at 0x3819f64f282bf135d62168C1e513280dAF905e06. */ /* Hedron is a collection of Ethereum / PulseChain smart contracts that * * build upon the HEX smart contract to provide additional functionality */ interface IHEX { event Approval( address indexed owner, address indexed spender, uint256 value ); event Claim( uint256 data0, uint256 data1, bytes20 indexed btcAddr, address indexed claimToAddr, address indexed referrerAddr ); event ClaimAssist( uint256 data0, uint256 data1, uint256 data2, address indexed senderAddr ); event DailyDataUpdate(uint256 data0, address indexed updaterAddr); event ShareRateChange(uint256 data0, uint40 indexed stakeId); event StakeEnd( uint256 data0, uint256 data1, address indexed stakerAddr, uint40 indexed stakeId ); event StakeGoodAccounting( uint256 data0, uint256 data1, address indexed stakerAddr, uint40 indexed stakeId, address indexed senderAddr ); event StakeStart( uint256 data0, address indexed stakerAddr, uint40 indexed stakeId ); event Transfer(address indexed from, address indexed to, uint256 value); event XfLobbyEnter( uint256 data0, address indexed memberAddr, uint256 indexed entryId, address indexed referrerAddr ); event XfLobbyExit( uint256 data0, address indexed memberAddr, uint256 indexed entryId, address indexed referrerAddr ); fallback() external payable; function allocatedSupply() external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function balanceOf(address account) external view returns (uint256); function btcAddressClaim( uint256 rawSatoshis, bytes32[] memory proof, address claimToAddr, bytes32 pubKeyX, bytes32 pubKeyY, uint8 claimFlags, uint8 v, bytes32 r, bytes32 s, uint256 autoStakeDays, address referrerAddr ) external returns (uint256); function btcAddressClaims(bytes20) external view returns (bool); function btcAddressIsClaimable( bytes20 btcAddr, uint256 rawSatoshis, bytes32[] memory proof ) external view returns (bool); function btcAddressIsValid( bytes20 btcAddr, uint256 rawSatoshis, bytes32[] memory proof ) external pure returns (bool); function claimMessageMatchesSignature( address claimToAddr, bytes32 claimParamHash, bytes32 pubKeyX, bytes32 pubKeyY, uint8 claimFlags, uint8 v, bytes32 r, bytes32 s ) external pure returns (bool); function currentDay() external view returns (uint256); function dailyData(uint256) external view returns ( uint72 dayPayoutTotal, uint72 dayStakeSharesTotal, uint56 dayUnclaimedSatoshisTotal ); function dailyDataRange(uint256 beginDay, uint256 endDay) external view returns (uint256[] memory list); function dailyDataUpdate(uint256 beforeDay) external; function decimals() external view returns (uint8); function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); function globalInfo() external view returns (uint256[13] memory); function globals() external view returns ( uint72 lockedHeartsTotal, uint72 nextStakeSharesTotal, uint40 shareRate, uint72 stakePenaltyTotal, uint16 dailyDataCount, uint72 stakeSharesTotal, uint40 latestStakeId, uint128 claimStats ); function increaseAllowance(address spender, uint256 addedValue) external returns (bool); function merkleProofIsValid(bytes32 merkleLeaf, bytes32[] memory proof) external pure returns (bool); function name() external view returns (string memory); function pubKeyToBtcAddress( bytes32 pubKeyX, bytes32 pubKeyY, uint8 claimFlags ) external pure returns (bytes20); function pubKeyToEthAddress(bytes32 pubKeyX, bytes32 pubKeyY) external pure returns (address); function stakeCount(address stakerAddr) external view returns (uint256); function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external; function stakeGoodAccounting( address stakerAddr, uint256 stakeIndex, uint40 stakeIdParam ) external; function stakeLists(address, uint256) external view returns ( uint40 stakeId, uint72 stakedHearts, uint72 stakeShares, uint16 lockedDay, uint16 stakedDays, uint16 unlockedDay, bool isAutoStake ); function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external; function symbol() external view returns (string memory); function totalSupply() external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function xfLobby(uint256) external view returns (uint256); function xfLobbyEnter(address referrerAddr) external payable; function xfLobbyEntry(address memberAddr, uint256 entryId) external view returns (uint256 rawAmount, address referrerAddr); function xfLobbyExit(uint256 enterDay, uint256 count) external; function xfLobbyFlush() external; function xfLobbyMembers(uint256, address) external view returns (uint40 headIndex, uint40 tailIndex); function xfLobbyPendingDays(address memberAddr) external view returns (uint256[2] memory words); function xfLobbyRange(uint256 beginDay, uint256 endDay) external view returns (uint256[] memory list); } struct HEXDailyData { uint72 dayPayoutTotal; uint72 dayStakeSharesTotal; uint56 dayUnclaimedSatoshisTotal; } struct HEXGlobals { uint72 lockedHeartsTotal; uint72 nextStakeSharesTotal; uint40 shareRate; uint72 stakePenaltyTotal; uint16 dailyDataCount; uint72 stakeSharesTotal; uint40 latestStakeId; uint128 claimStats; } struct HEXStake { uint40 stakeId; uint72 stakedHearts; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool isAutoStake; } struct HEXStakeMinimal { uint40 stakeId; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; } struct ShareStore { HEXStakeMinimal stake; uint16 mintedDays; uint8 launchBonus; uint16 loanStart; uint16 loanedDays; uint32 interestRate; uint8 paymentsMade; bool isLoaned; } struct ShareCache { HEXStakeMinimal _stake; uint256 _mintedDays; uint256 _launchBonus; uint256 _loanStart; uint256 _loanedDays; uint256 _interestRate; uint256 _paymentsMade; bool _isLoaned; } address constant _hdrnSourceAddress = address(0x9d73Ced2e36C89E5d167151809eeE218a189f801); address constant _hdrnFlowAddress = address(0xF447BE386164dADfB5d1e7622613f289F17024D8); uint256 constant _hdrnLaunch = 1645833600; contract HEXStakeInstance { IHEX private _hx; address private _creator; ShareStore public share; /** * @dev Updates the HSI's internal HEX stake data. */ function _stakeDataUpdate( ) internal { uint40 stakeId; uint72 stakedHearts; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool isAutoStake; (stakeId, stakedHearts, stakeShares, lockedDay, stakedDays, unlockedDay, isAutoStake ) = _hx.stakeLists(address(this), 0); share.stake.stakeId = stakeId; share.stake.stakeShares = stakeShares; share.stake.lockedDay = lockedDay; share.stake.stakedDays = stakedDays; } function initialize( address hexAddress ) external { require(_creator == address(0), "HSI: Initialization already performed"); /* _creator is not an admin key. It is set at contsruction to be a link to the parent contract. In this case HSIM */ _creator = msg.sender; // set HEX contract address _hx = IHEX(payable(hexAddress)); } /** * @dev Creates a new HEX stake using all HEX ERC20 tokens assigned * to the HSI's contract address. This is a privileged operation only * HEXStakeInstanceManager.sol can call. * @param stakeLength Number of days the HEX ERC20 tokens will be staked. */ function create( uint256 stakeLength ) external { uint256 hexBalance = _hx.balanceOf(address(this)); require(msg.sender == _creator, "HSI: Caller must be contract creator"); require(share.stake.stakedDays == 0, "HSI: Creation already performed"); require(hexBalance > 0, "HSI: Creation requires a non-zero HEX balance"); _hx.stakeStart( hexBalance, stakeLength ); _stakeDataUpdate(); } /** * @dev Calls the HEX function "stakeGoodAccounting" against the * HEX stake held within the HSI. */ function goodAccounting( ) external { require(share.stake.stakedDays > 0, "HSI: Creation not yet performed"); _hx.stakeGoodAccounting(address(this), 0, share.stake.stakeId); _stakeDataUpdate(); } /** * @dev Ends the HEX stake, approves the "_creator" address to transfer * all HEX ERC20 tokens, and self-destructs the HSI. This is a * privileged operation only HEXStakeInstanceManager.sol can call. */ function destroy( ) external { require(msg.sender == _creator, "HSI: Caller must be contract creator"); require(share.stake.stakedDays > 0, "HSI: Creation not yet performed"); _hx.stakeEnd(0, share.stake.stakeId); uint256 hexBalance = _hx.balanceOf(address(this)); if (_hx.approve(_creator, hexBalance)) { selfdestruct(payable(_creator)); } else { revert(); } } /** * @dev Updates the HSI's internal share data. This is a privileged * operation only HEXStakeInstanceManager.sol can call. * @param _share "ShareCache" object containing updated share data. */ function update( ShareCache memory _share ) external { require(msg.sender == _creator, "HSI: Caller must be contract creator"); share.mintedDays = uint16(_share._mintedDays); share.launchBonus = uint8 (_share._launchBonus); share.loanStart = uint16(_share._loanStart); share.loanedDays = uint16(_share._loanedDays); share.interestRate = uint32(_share._interestRate); share.paymentsMade = uint8 (_share._paymentsMade); share.isLoaned = _share._isLoaned; } /** * @dev Fetches stake data from the HEX contract. * @return A "HEXStake" object containg the HEX stake data. */ function stakeDataFetch( ) external view returns(HEXStake memory) { uint40 stakeId; uint72 stakedHearts; uint72 stakeShares; uint16 lockedDay; uint16 stakedDays; uint16 unlockedDay; bool isAutoStake; (stakeId, stakedHearts, stakeShares, lockedDay, stakedDays, unlockedDay, isAutoStake ) = _hx.stakeLists(address(this), 0); return HEXStake( stakeId, stakedHearts, stakeShares, lockedDay, stakedDays, unlockedDay, isAutoStake ); } }
[{"inputs":[{"internalType":"uint256","name":"stakeLength","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destroy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goodAccounting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"hexAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"share","outputs":[{"components":[{"internalType":"uint40","name":"stakeId","type":"uint40"},{"internalType":"uint72","name":"stakeShares","type":"uint72"},{"internalType":"uint16","name":"lockedDay","type":"uint16"},{"internalType":"uint16","name":"stakedDays","type":"uint16"}],"internalType":"struct HEXStakeMinimal","name":"stake","type":"tuple"},{"internalType":"uint16","name":"mintedDays","type":"uint16"},{"internalType":"uint8","name":"launchBonus","type":"uint8"},{"internalType":"uint16","name":"loanStart","type":"uint16"},{"internalType":"uint16","name":"loanedDays","type":"uint16"},{"internalType":"uint32","name":"interestRate","type":"uint32"},{"internalType":"uint8","name":"paymentsMade","type":"uint8"},{"internalType":"bool","name":"isLoaned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeDataFetch","outputs":[{"components":[{"internalType":"uint40","name":"stakeId","type":"uint40"},{"internalType":"uint72","name":"stakedHearts","type":"uint72"},{"internalType":"uint72","name":"stakeShares","type":"uint72"},{"internalType":"uint16","name":"lockedDay","type":"uint16"},{"internalType":"uint16","name":"stakedDays","type":"uint16"},{"internalType":"uint16","name":"unlockedDay","type":"uint16"},{"internalType":"bool","name":"isAutoStake","type":"bool"}],"internalType":"struct HEXStake","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"uint40","name":"stakeId","type":"uint40"},{"internalType":"uint72","name":"stakeShares","type":"uint72"},{"internalType":"uint16","name":"lockedDay","type":"uint16"},{"internalType":"uint16","name":"stakedDays","type":"uint16"}],"internalType":"struct HEXStakeMinimal","name":"_stake","type":"tuple"},{"internalType":"uint256","name":"_mintedDays","type":"uint256"},{"internalType":"uint256","name":"_launchBonus","type":"uint256"},{"internalType":"uint256","name":"_loanStart","type":"uint256"},{"internalType":"uint256","name":"_loanedDays","type":"uint256"},{"internalType":"uint256","name":"_interestRate","type":"uint256"},{"internalType":"uint256","name":"_paymentsMade","type":"uint256"},{"internalType":"bool","name":"_isLoaned","type":"bool"}],"internalType":"struct ShareCache","name":"_share","type":"tuple"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"}]
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.