Documentation ¶
Index ¶
- Constants
- func DepositGas(ctx context.Context, sm protocol.StateManager, amount *big.Int, ...) error
- type Protocol
- func (p *Protocol) AvailableBalance(ctx context.Context, sm protocol.StateManager) (*big.Int, error)
- func (p *Protocol) BlockReward(_ context.Context, sm protocol.StateManager) (*big.Int, error)
- func (p *Protocol) Claim(ctx context.Context, sm protocol.StateManager, amount *big.Int) error
- func (p *Protocol) Deposit(ctx context.Context, sm protocol.StateManager, amount *big.Int) error
- func (p *Protocol) EpochReward(_ context.Context, sm protocol.StateManager) (*big.Int, error)
- func (p *Protocol) GrantBlockReward(ctx context.Context, sm protocol.StateManager) error
- func (p *Protocol) GrantEpochReward(ctx context.Context, sm protocol.StateManager) error
- func (p *Protocol) Handle(ctx context.Context, act action.Action, sm protocol.StateManager) (*action.Receipt, error)
- func (p *Protocol) Initialize(ctx context.Context, sm protocol.StateManager, initBalance *big.Int, ...) error
- func (p *Protocol) NumDelegatesForEpochReward(_ context.Context, sm protocol.StateManager) (uint64, error)
- func (p *Protocol) ReadState(ctx context.Context, sm protocol.StateManager, method []byte, args ...[]byte) ([]byte, error)
- func (p *Protocol) TotalBalance(ctx context.Context, sm protocol.StateManager) (*big.Int, error)
- func (p *Protocol) UnclaimedBalance(ctx context.Context, sm protocol.StateManager, addr address.Address) (*big.Int, error)
- func (p *Protocol) Validate(ctx context.Context, act action.Action) error
Constants ¶
const ( // ProtocolID is the protocol ID // TODO: it works only for one instance per protocol definition now ProtocolID = "rewarding" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Protocol ¶
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 NewProtocol ¶
func NewProtocol(cm protocol.ChainManager, rp *rolldpos.Protocol) *Protocol
NewProtocol instantiates a rewarding protocol instance.
func (*Protocol) AvailableBalance ¶
func (p *Protocol) AvailableBalance( ctx context.Context, sm protocol.StateManager, ) (*big.Int, error)
AvailableBalance returns the available balance of the rewarding fund
func (*Protocol) BlockReward ¶
BlockReward returns the block reward amount
func (*Protocol) EpochReward ¶
EpochReward returns the epoch reward amount
func (*Protocol) GrantBlockReward ¶
GrantBlockReward grants the block reward (token) to the block producer
func (*Protocol) GrantEpochReward ¶
GrantEpochReward grants the epoch reward (token) to all beneficiaries of a epoch
func (*Protocol) Handle ¶
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) Initialize ¶
func (p *Protocol) Initialize( ctx context.Context, sm protocol.StateManager, initBalance *big.Int, blockReward *big.Int, epochReward *big.Int, numDelegatesForEpochReward uint64, exemptAddrs []address.Address, ) error
Initialize initializes the rewarding protocol by setting the original admin, block and epoch reward
func (*Protocol) NumDelegatesForEpochReward ¶ added in v0.5.0
func (p *Protocol) NumDelegatesForEpochReward( _ context.Context, sm protocol.StateManager, ) (uint64, error)
NumDelegatesForEpochReward returns the number of candidates sharing an epoch reward
func (*Protocol) ReadState ¶ added in v0.5.0
func (p *Protocol) ReadState( ctx context.Context, sm protocol.StateManager, method []byte, args ...[]byte, ) ([]byte, error)
ReadState read the state on blockchain via protocol
func (*Protocol) TotalBalance ¶
TotalBalance returns the total balance of the rewarding fund