ETH Price: $2,513.64 (-1.35%)
Gas: 0.42 Gwei

Transaction Decoder

Block:
21635843 at Jan-16-2025 08:26:23 AM +UTC
Transaction Fee:
0.000472151977742382 ETH $1.19
Gas Used:
152,058 Gas / 3.105078179 Gwei

Emitted Events:

645 PolygonEcosystemToken.Transfer( from=StakeManagerProxy, to=[Sender] 0x4ef30ba82ab335b47e60df47450901dd4e53befd, value=25916991052771600273 )
646 StakingInfo.DelegatorClaimedRewards( validatorId=118, user=[Sender] 0x4ef30ba82ab335b47e60df47450901dd4e53befd, rewards=25916991052771600273 )

Account State Difference:

  Address   Before After State Difference Code
0x3EDBF7E0...409364269
0x455e53CB...44aFFC3F6
(Titan Builder)
6.609744860549971335 Eth6.609745818211255335 Eth0.000000957661284
0x4ef30BA8...D4E53BeFD
0.003025679241834975 Eth
Nonce: 57
0.002553527264092593 Eth
Nonce: 58
0.000472151977742382
0x5e3Ef299...e8c13D908
(Polygon (Matic): PoS Staking Contract)

Execution Trace

ValidatorShareProxy.CALL( )
  • Registry.STATICCALL( )
  • ValidatorShare.DELEGATECALL( )
    • StakeManagerProxy.7ed4b27c( )
    • StakeManagerProxy.c7f067cb( )
      • StakeManager.transferFundsPOL( validatorId=118, amount=25916991052771600273, delegator=0x4ef30BA82Ab335B47E60dF47450901DD4E53BeFD ) => ( True )
        • PolygonEcosystemToken.transfer( to=0x4ef30BA82Ab335B47E60dF47450901DD4E53BeFD, amount=25916991052771600273 ) => ( True )
        • StakingInfo.logDelegatorClaimRewards( validatorId=118, user=0x4ef30BA82Ab335B47E60dF47450901DD4E53BeFD, rewards=25916991052771600273 )
          • Registry.STATICCALL( )
          • StakeManagerProxy.35aa2e44( )
            • StakeManager.validators( 118 ) => ( amount=2550000000000000000000, reward=714063244824072091823, activationEpoch=11448, deactivationEpoch=0, jailTime=0, signer=0x5fFD4EFfD8E476C72FddC75BcD31f421001F9Ce6, contractAddress=0x3EDBF7E027D280BCd8126a87f382941409364269, status=1, commissionRate=3, lastCommissionUpdate=40943, delegatorsReward=1, delegatedAmount=1345408113900065815715661, initialRewardPerStake=3027181256746354844824801 )
              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