ETH Price: $2,581.05 (+1.85%)

Transaction Decoder

Block:
20725372 at Sep-11-2024 05:46:11 AM +UTC
Transaction Fee:
0.000509622495241684 ETH $1.32
Gas Used:
129,151 Gas / 3.945943084 Gwei

Emitted Events:

203 PolygonEcosystemToken.Transfer( from=StakeManagerProxy, to=[Sender] 0xfb7ff3b47a3a0215acbaf732719fe00b4d82162d, value=17083080977931852943388 )
204 EventsHubProxy.0x7beb9bef91040fcf7607c78d4fc668370a9036788d7e6f202a4a2db5b0c28c80( 0x7beb9bef91040fcf7607c78d4fc668370a9036788d7e6f202a4a2db5b0c28c80, 0x0000000000000000000000000000000000000000000000000000000000000076, 0x000000000000000000000000fb7ff3b47a3a0215acbaf732719fe00b4d82162d, 00000000000000000000000000000000000000000000039e135f77630cc9901c, 0000000000000000000000000000000000000000000000000000000000000002 )

Account State Difference:

  Address   Before After State Difference Code
0x3EDBF7E0...409364269
0x455e53CB...44aFFC3F6
(beaverbuild)
9.228489544467337879 Eth9.228812421967337879 Eth0.0003228775
0xfB7FF3B4...b4d82162D
0.001571069633825721 Eth
Nonce: 318
0.001061447138584037 Eth
Nonce: 319
0.000509622495241684

Execution Trace

ValidatorShareProxy.8759c234( )
  • Registry.STATICCALL( )
  • ValidatorShare.unstakeClaimTokens_newPOL( unbondNonce=2 )
    • StakeManagerProxy.STATICCALL( )
      • StakeManager.DELEGATECALL( )
      • StakeManagerProxy.STATICCALL( )
        • StakeManager.DELEGATECALL( )
        • StakeManagerProxy.c7f067cb( )
          • StakeManager.transferFundsPOL( validatorId=118, amount=17083080977931852943388, delegator=0xfB7FF3B47a3a0215aCBaf732719Fe00b4d82162D ) => ( True )
            • PolygonEcosystemToken.transfer( to=0xfB7FF3B47a3a0215aCBaf732719Fe00b4d82162D, amount=17083080977931852943388 ) => ( True )
            • EventsHubProxy.6e699d87( )
              • EventsHub.logDelegatorUnstakedWithId( validatorId=118, user=0xfB7FF3B47a3a0215aCBaf732719Fe00b4d82162D, amount=17083080977931852943388, nonce=2 )
                • Registry.STATICCALL( )
                • StakeManagerProxy.35aa2e44( )
                  • StakeManager.validators( 118 ) => ( amount=2550000000000000000000, reward=8189433118386847100668, activationEpoch=11448, deactivationEpoch=0, jailTime=0, signer=0x5fFD4EFfD8E476C72FddC75BcD31f421001F9Ce6, contractAddress=0x3EDBF7E027D280BCd8126a87f382941409364269, status=1, commissionRate=3, lastCommissionUpdate=40943, delegatorsReward=1, delegatedAmount=1628235436816618184954412, initialRewardPerStake=2870106807583759911891240 )
                    File 1 of 8: ValidatorShareProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // File: openzeppelin-solidity/contracts/ownership/Ownable.sol
                    pragma solidity ^0.5.2;
                    /**
                    * @title Ownable
                    * @dev The Ownable contract has an owner address, and provides basic authorization control
                    * functions, this simplifies the implementation of "user permissions".
                    */
                    contract Ownable {
                    address private _owner;
                    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
                    /**
                    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 2 of 8: StakeManagerProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // File: openzeppelin-solidity/contracts/ownership/Ownable.sol
                    pragma solidity ^0.5.2;
                    /**
                    * @title Ownable
                    * @dev The Ownable contract has an owner address, and provides basic authorization control
                    * functions, this simplifies the implementation of "user permissions".
                    */
                    contract Ownable {
                    address private _owner;
                    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
                    /**
                    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 3 of 8: PolygonEcosystemToken
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.21;
                    import {ERC20, ERC20Permit, IERC20} from "openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol";
                    import {AccessControlEnumerable} from "openzeppelin-contracts/contracts/access/AccessControlEnumerable.sol";
                    import {IPolygonEcosystemToken} from "./interfaces/IPolygonEcosystemToken.sol";
                    /// @title Polygon ERC20 token
                    /// @author Polygon Labs (@DhairyaSethi, @gretzke, @qedk, @simonDos)
                    /// @notice This is the Polygon ERC20 token contract on Ethereum L1
                    /// @dev The contract allows for a 1-to-1 representation between $POL and $MATIC and allows for additional emission based on hub and treasury
                        requirements
                    /// @custom:security-contact security@polygon.technology
                    contract PolygonEcosystemToken is ERC20Permit, AccessControlEnumerable, IPolygonEcosystemToken {
                    bytes32 public constant EMISSION_ROLE = keccak256("EMISSION_ROLE");
                    bytes32 public constant CAP_MANAGER_ROLE = keccak256("CAP_MANAGER_ROLE");
                    bytes32 public constant PERMIT2_REVOKER_ROLE = keccak256("PERMIT2_REVOKER_ROLE");
                    address public constant PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 4 of 8: EventsHubProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // File: contracts/common/misc/ERCProxy.sol
                    /*
                    * SPDX-License-Identitifer: MIT
                    */
                    pragma solidity ^0.5.2;
                    // See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-897.md
                    interface ERCProxy {
                    function proxyType() external pure returns (uint256 proxyTypeId);
                    function implementation() external view returns (address codeAddr);
                    }
                    // File: contracts/common/misc/DelegateProxyForwarder.sol
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 5 of 8: Registry
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    /**
                    Matic network contracts
                    */
                    pragma solidity ^0.5.2;
                    interface IGovernance {
                    function update(address target, bytes calldata data) external;
                    }
                    contract Governable {
                    IGovernance public governance;
                    constructor(address _governance) public {
                    governance = IGovernance(_governance);
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 6 of 8: ValidatorShare
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    pragma solidity 0.5.17;
                    import {Registry} from "../../common/Registry.sol";
                    import {ERC20NonTradable} from "../../common/tokens/ERC20NonTradable.sol";
                    import {ERC20} from "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
                    import {StakingInfo} from "./../StakingInfo.sol";
                    import {EventsHub} from "./../EventsHub.sol";
                    import {OwnableLockable} from "../../common/mixin/OwnableLockable.sol";
                    import {IStakeManager} from "../stakeManager/IStakeManager.sol";
                    import {IValidatorShare} from "./IValidatorShare.sol";
                    import {Initializable} from "../../common/mixin/Initializable.sol";
                    import {IERC20Permit} from "./../../common/misc/IERC20Permit.sol";
                    contract ValidatorShare is IValidatorShare, ERC20NonTradable, OwnableLockable, Initializable {
                    struct DelegatorUnbond {
                    uint256 shares;
                    uint256 withdrawEpoch;
                    }
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 7 of 8: StakeManager
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    pragma solidity 0.5.17;
                    import {IERC20} from "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol";
                    import {Math} from "openzeppelin-solidity/contracts/math/Math.sol";
                    import {SafeMath} from "openzeppelin-solidity/contracts/math/SafeMath.sol";
                    import {RLPReader} from "solidity-rlp/contracts/RLPReader.sol";
                    import {BytesLib} from "../../common/lib/BytesLib.sol";
                    import {ECVerify} from "../../common/lib/ECVerify.sol";
                    import {Merkle} from "../../common/lib/Merkle.sol";
                    import {GovernanceLockable} from "../../common/mixin/GovernanceLockable.sol";
                    import {DelegateProxyForwarder} from "../../common/misc/DelegateProxyForwarder.sol";
                    import {Registry} from "../../common/Registry.sol";
                    import {IStakeManager} from "./IStakeManager.sol";
                    import {IValidatorShare} from "../validatorShare/IValidatorShare.sol";
                    import {ValidatorShare} from "../validatorShare/ValidatorShare.sol";
                    import {StakingInfo} from "../StakingInfo.sol";
                    import {StakingNFT} from "./StakingNFT.sol";
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 8 of 8: EventsHub
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // File: contracts/common/governance/IGovernance.sol
                    pragma solidity ^0.5.2;
                    interface IGovernance {
                    function update(address target, bytes calldata data) external;
                    }
                    // File: contracts/common/governance/Governable.sol
                    pragma solidity ^0.5.2;
                    contract Governable {
                    IGovernance public governance;
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX