ETH Price: $2,755.33 (-2.39%)

Transaction Decoder

Block:
22120739 at Mar-25-2025 01:48:47 AM +UTC
Transaction Fee:
0.000478376482235366 ETH $1.32
Gas Used:
154,858 Gas / 3.089129927 Gwei

Emitted Events:

12 PolygonEcosystemToken.Transfer( from=StakeManagerProxy, to=[Sender] 0xe3581ac44562bc0e092b15aea8e06c6fc73af38c, value=100942128372904409992 )
13 StakingInfo.DelegatorClaimedRewards( validatorId=118, user=[Sender] 0xe3581ac44562bc0e092b15aea8e06c6fc73af38c, rewards=100942128372904409992 )

Account State Difference:

  Address   Before After State Difference Code
0x3EDBF7E0...409364269
0x455e53CB...44aFFC3F6
0x5e3Ef299...e8c13D908
(Polygon (Matic): PoS Staking Contract)
(beaverbuild)
20.335533577520835966 Eth20.335920722520835966 Eth0.000387145
0xe3581Ac4...fc73af38c
0.753149338928560569 Eth
Nonce: 13
0.752670962446325203 Eth
Nonce: 14
0.000478376482235366

Execution Trace

ValidatorShareProxy.CALL( )
  • Registry.STATICCALL( )
  • ValidatorShare.DELEGATECALL( )
    • StakeManagerProxy.7ed4b27c( )
    • StakeManagerProxy.c7f067cb( )
      • StakeManager.transferFundsPOL( validatorId=118, amount=100942128372904409992, delegator=0xe3581Ac44562bc0E092B15aEA8e06C6fc73af38c ) => ( True )
        • PolygonEcosystemToken.transfer( to=0xe3581Ac44562bc0E092B15aEA8e06C6fc73af38c, amount=100942128372904409992 ) => ( True )
        • StakingInfo.logDelegatorClaimRewards( validatorId=118, user=0xe3581Ac44562bc0E092B15aEA8e06C6fc73af38c, rewards=100942128372904409992 )
          • Registry.STATICCALL( )
          • StakeManagerProxy.35aa2e44( )
            • StakeManager.validators( 118 ) => ( amount=2550000000000000000000, reward=693658816100408349661, activationEpoch=11448, deactivationEpoch=0, jailTime=0, signer=0x5fFD4EFfD8E476C72FddC75BcD31f421001F9Ce6, contractAddress=0x3EDBF7E027D280BCd8126a87f382941409364269, status=1, commissionRate=5, lastCommissionUpdate=77170, delegatorsReward=1, delegatedAmount=1372234980107843079793640, initialRewardPerStake=3102075435149055350046220 )
              File 1 of 7: 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 7: 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 7: 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 7: StakingInfo
              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

              File 5 of 7: 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 7: 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 7: 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 {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";
              import {ValidatorShareFactory} from "../validatorShare/ValidatorShareFactory.sol";
              import {StakeManagerStorage} from "./StakeManagerStorage.sol";
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX