iotex-core: github.com/iotexproject/iotex-core/action/protocol/rewarding Index | Files | Directories

package rewarding

import "github.com/iotexproject/iotex-core/action/protocol/rewarding"

Index

Package Files

admin.go fund.go protocol.go reward.go

func DepositGas Uses

func DepositGas(ctx context.Context, sm protocol.StateManager, amount *big.Int) error

DepositGas deposits gas into the rewarding fund

type Protocol Uses

type Protocol struct {
    // contains filtered or unexported fields
}

Protocol defines the protocol of the rewarding fund and the rewarding process. It allows the admin to config the reward amount, users to donate tokens to the fund, block producers to grant them block and epoch reward and, beneficiaries to claim the balance into their personal account.

func FindProtocol Uses

func FindProtocol(registry *protocol.Registry) *Protocol

FindProtocol finds the registered protocol from registry

func NewProtocol Uses

func NewProtocol(
    foundationBonusP2Start uint64,
    foundationBonusP2End uint64,
) *Protocol

NewProtocol instantiates a rewarding protocol instance.

func (*Protocol) AvailableBalance Uses

func (p *Protocol) AvailableBalance(
    ctx context.Context,
    sm protocol.StateReader,
) (*big.Int, error)

AvailableBalance returns the available balance of the rewarding fund

func (*Protocol) BlockReward Uses

func (p *Protocol) BlockReward(
    _ context.Context,
    sm protocol.StateReader,
) (*big.Int, error)

BlockReward returns the block reward amount

func (*Protocol) Claim Uses

func (p *Protocol) Claim(
    ctx context.Context,
    sm protocol.StateManager,
    amount *big.Int,
) error

Claim claims the token from the rewarding fund

func (*Protocol) CreateGenesisStates Uses

func (p *Protocol) CreateGenesisStates(
    ctx context.Context,
    sm protocol.StateManager,
) error

CreateGenesisStates initializes the rewarding protocol by setting the original admin, block and epoch reward

func (*Protocol) CreatePostSystemActions Uses

func (p *Protocol) CreatePostSystemActions(ctx context.Context, _ protocol.StateReader) ([]action.Envelope, error)

CreatePostSystemActions creates a list of system actions to be appended to block actions

func (*Protocol) CreatePreStates Uses

func (p *Protocol) CreatePreStates(ctx context.Context, sm protocol.StateManager) error

CreatePreStates updates state manager

func (*Protocol) Deposit Uses

func (p *Protocol) Deposit(
    ctx context.Context,
    sm protocol.StateManager,
    amount *big.Int,
) error

Deposit deposits token into the rewarding fund

func (*Protocol) EpochReward Uses

func (p *Protocol) EpochReward(
    _ context.Context,
    sm protocol.StateReader,
) (*big.Int, error)

EpochReward returns the epoch reward amount

func (*Protocol) ForceRegister Uses

func (p *Protocol) ForceRegister(r *protocol.Registry) error

ForceRegister registers the protocol with a unique ID and force replacing the previous protocol if it exists

func (*Protocol) FoundationBonus Uses

func (p *Protocol) FoundationBonus(_ context.Context, sm protocol.StateReader) (*big.Int, error)

FoundationBonus returns the foundation bonus amount

func (*Protocol) FoundationBonusLastEpoch Uses

func (p *Protocol) FoundationBonusLastEpoch(_ context.Context, sm protocol.StateReader) (uint64, error)

FoundationBonusLastEpoch returns the last epoch when the foundation bonus will still be granted

func (*Protocol) GrantBlockReward Uses

func (p *Protocol) GrantBlockReward(
    ctx context.Context,
    sm protocol.StateManager,
) (*action.Log, error)

GrantBlockReward grants the block reward (token) to the block producer

func (*Protocol) GrantEpochReward Uses

func (p *Protocol) GrantEpochReward(
    ctx context.Context,
    sm protocol.StateManager,
) ([]*action.Log, error)

GrantEpochReward grants the epoch reward (token) to all beneficiaries of a epoch

func (*Protocol) Handle Uses

func (p *Protocol) Handle(
    ctx context.Context,
    act action.Action,
    sm protocol.StateManager,
) (*action.Receipt, error)

Handle handles the actions on the rewarding protocol

func (*Protocol) Name Uses

func (p *Protocol) Name() string

Name returns the name of protocol

func (*Protocol) NumDelegatesForEpochReward Uses

func (p *Protocol) NumDelegatesForEpochReward(
    _ context.Context,
    sm protocol.StateManager,
) (uint64, error)

NumDelegatesForEpochReward returns the number of candidates sharing an epoch reward

func (*Protocol) NumDelegatesForFoundationBonus Uses

func (p *Protocol) NumDelegatesForFoundationBonus(_ context.Context, sm protocol.StateReader) (uint64, error)

NumDelegatesForFoundationBonus returns the number of delegates that will get foundation bonus

func (*Protocol) ProductivityThreshold Uses

func (p *Protocol) ProductivityThreshold(_ context.Context, sm protocol.StateManager) (uint64, error)

ProductivityThreshold returns the productivity threshold

func (*Protocol) ReadState Uses

func (p *Protocol) ReadState(
    ctx context.Context,
    sr protocol.StateReader,
    method []byte,
    args ...[]byte,
) ([]byte, error)

ReadState read the state on blockchain via protocol

func (*Protocol) Register Uses

func (p *Protocol) Register(r *protocol.Registry) error

Register registers the protocol with a unique ID

func (*Protocol) SetReward Uses

func (p *Protocol) SetReward(
    ctx context.Context,
    sm protocol.StateManager,
    amount *big.Int,
    blockLevel bool,
) error

SetReward updates block or epoch reward amount

func (*Protocol) TotalBalance Uses

func (p *Protocol) TotalBalance(
    ctx context.Context,
    sm protocol.StateReader,
) (*big.Int, error)

TotalBalance returns the total balance of the rewarding fund

func (*Protocol) UnclaimedBalance Uses

func (p *Protocol) UnclaimedBalance(
    ctx context.Context,
    sm protocol.StateReader,
    addr address.Address,
) (*big.Int, error)

UnclaimedBalance returns unclaimed balance of a given address

Directories

PathSynopsis
rewardingpb

Package rewarding imports 18 packages (graph) and is imported by 1 packages. Updated 2020-05-30. Refresh now. Tools for package owners.