Documentation ¶
Overview ¶
in the blocklog core contract the VM keeps indices of blocks and requests in an optimized way for fast checking and timestamp access.
Index ¶
- Constants
- Variables
- func AccessNodeCandidatesMap(state kv.KVStore) *collections.Map
- func AccessNodeCandidatesMapR(state kv.KVStoreReader) *collections.ImmutableMap
- func AccessNodesMap(state kv.KVStore) *collections.Map
- func AccessNodesMapR(state kv.KVStoreReader) *collections.ImmutableMap
- func GetChainInfo(state kv.KVStoreReader, chainID isc.ChainID) (*isc.ChainInfo, error)
- func GetCustomMetadata(state kv.KVStoreReader) []byte
- func GetGasFeePolicy(state kv.KVStoreReader) (*gas.FeePolicy, error)
- func GetGasLimits(state kv.KVStoreReader) (*gas.Limits, error)
- func GetRotationAddress(state kv.KVStoreReader) iotago.Address
- func MustGetChainInfo(state kv.KVStoreReader, chainID isc.ChainID) *isc.ChainInfo
- func MustGetChainOwnerID(state kv.KVStoreReader) isc.AgentID
- func MustGetGasFeePolicy(state kv.KVStoreReader) *gas.FeePolicy
- func MustGetGasLimits(state kv.KVStoreReader) *gas.Limits
- func SetCustomMetadata(state kv.KVStore, data []byte)
- type AccessNodeInfo
- func NewAccessNodeInfoFromAddCandidateNodeParams(ctx isc.Sandbox) *AccessNodeInfo
- func NewAccessNodeInfoFromBytes(pubKey, value []byte) (*AccessNodeInfo, error)
- func NewAccessNodeInfoFromRevokeAccessNodeParams(ctx isc.Sandbox) *AccessNodeInfo
- func NewAccessNodeInfoListFromMap(infoMap *collections.ImmutableMap) ([]*AccessNodeInfo, error)
- func (a *AccessNodeInfo) AddCertificate(nodeKeyPair *cryptolib.KeyPair, ownerAddress iotago.Address) *AccessNodeInfo
- func (a *AccessNodeInfo) Bytes() []byte
- func (a *AccessNodeInfo) ToAddCandidateNodeParams() dict.Dict
- func (a *AccessNodeInfo) ToRevokeAccessNodeParams() dict.Dict
- func (a *AccessNodeInfo) ValidateCertificate(ctx isc.Sandbox) bool
- type ChangeAccessNodeAction
- type ChangeAccessNodesRequest
- func (req *ChangeAccessNodesRequest) Accept(pubKey *cryptolib.PublicKey) *ChangeAccessNodesRequest
- func (req *ChangeAccessNodesRequest) AsDict() dict.Dict
- func (req *ChangeAccessNodesRequest) Drop(pubKey *cryptolib.PublicKey) *ChangeAccessNodesRequest
- func (req *ChangeAccessNodesRequest) Remove(pubKey *cryptolib.PublicKey) *ChangeAccessNodesRequest
- type ContractFeesRecord
- type GetChainNodesRequest
- type GetChainNodesResponse
- type NodeOwnershipCertificate
- type StateAccess
Constants ¶
const ( ChangeAccessNodeActionRemove = ChangeAccessNodeAction(iota) ChangeAccessNodeActionAccept ChangeAccessNodeActionDrop )
const ( // state controller StateVarAllowedStateControllerAddresses = "a" StateVarRotateToAddress = "r" // chain owner VarChainOwnerID = "o" VarChainOwnerIDDelegated = "n" // gas VarGasFeePolicyBytes = "g" VarGasLimitsBytes = "l" // access nodes VarAccessNodes = "an" VarAccessNodeCandidates = "ac" // maintenance VarMaintenanceStatus = "m" // L1 metadata VarCustomMetadata = "x" )
state variables
const ( // state controller ParamStateControllerAddress = coreutil.ParamStateControllerAddress ParamAllowedStateControllerAddresses = "a" // chain owner ParamChainOwner = "o" // gas ParamFeePolicyBytes = "g" ParamEVMGasRatio = "e" ParamGasLimitsBytes = "l" // chain info ParamChainID = "c" ParamGetChainNodesAccessNodeCandidates = "an" ParamGetChainNodesAccessNodes = "ac" // access nodes: addCandidateNode ParamAccessNodeInfoForCommittee = "i" ParamAccessNodeInfoPubKey = "ip" ParamAccessNodeInfoCertificate = "ic" ParamAccessNodeInfoAccessAPI = "ia" // access nodes: changeAccessNodes ParamChangeAccessNodesActions = "n" // L1 metadata ParamCustomMetadata = "x" )
params
Variables ¶
var ( // state controller (entity that owns the state output via AliasAddress) FuncRotateStateController = coreutil.Func(coreutil.CoreEPRotateStateController) FuncAddAllowedStateControllerAddress = coreutil.Func("addAllowedStateControllerAddress") FuncRemoveAllowedStateControllerAddress = coreutil.Func("removeAllowedStateControllerAddress") ViewGetAllowedStateControllerAddresses = coreutil.ViewFunc("getAllowedStateControllerAddresses") // chain owner (L1 entity that is the "owner of the chain") FuncClaimChainOwnership = coreutil.Func("claimChainOwnership") FuncDelegateChainOwnership = coreutil.Func("delegateChainOwnership") ViewGetChainOwner = coreutil.ViewFunc("getChainOwner") // gas FuncSetFeePolicy = coreutil.Func("setFeePolicy") ViewGetFeePolicy = coreutil.ViewFunc("getFeePolicy") FuncSetGasLimits = coreutil.Func("setGasLimits") ViewGetGasLimits = coreutil.ViewFunc("getGasLimits") // evm fees FuncSetEVMGasRatio = coreutil.Func("setGasRatio") ViewGetEVMGasRatio = coreutil.ViewFunc("getGasRatio") // chain info ViewGetChainInfo = coreutil.ViewFunc("getChainInfo") // access nodes FuncAddCandidateNode = coreutil.Func("addCandidateNode") FuncRevokeAccessNode = coreutil.Func("revokeAccessNode") FuncChangeAccessNodes = coreutil.Func("changeAccessNodes") ViewGetChainNodes = coreutil.ViewFunc("getChainNodes") // maintenance FuncStartMaintenance = coreutil.Func("startMaintenance") FuncStopMaintenance = coreutil.Func("stopMaintenance") ViewGetMaintenanceStatus = coreutil.ViewFunc("getMaintenanceStatus") // L1 metadata FuncSetCustomMetadata = coreutil.Func("setCustomMetadata") ViewGetCustomMetadata = coreutil.ViewFunc("getCustomMetadata") )
var Contract = coreutil.NewContract(coreutil.CoreContractGovernance, "Governance contract")
Functions ¶
func AccessNodeCandidatesMap ¶ added in v1.0.3
func AccessNodeCandidatesMap(state kv.KVStore) *collections.Map
func AccessNodeCandidatesMapR ¶ added in v1.0.3
func AccessNodeCandidatesMapR(state kv.KVStoreReader) *collections.ImmutableMap
func AccessNodesMap ¶ added in v1.0.3
func AccessNodesMap(state kv.KVStore) *collections.Map
func AccessNodesMapR ¶ added in v1.0.3
func AccessNodesMapR(state kv.KVStoreReader) *collections.ImmutableMap
func GetChainInfo ¶ added in v0.3.0
GetChainInfo returns global variables of the chain
func GetCustomMetadata ¶
func GetCustomMetadata(state kv.KVStoreReader) []byte
func GetGasFeePolicy ¶ added in v0.3.0
func GetGasFeePolicy(state kv.KVStoreReader) (*gas.FeePolicy, error)
GetGasFeePolicy returns gas policy from the state
func GetGasLimits ¶ added in v1.0.3
func GetGasLimits(state kv.KVStoreReader) (*gas.Limits, error)
func GetRotationAddress ¶
func GetRotationAddress(state kv.KVStoreReader) iotago.Address
GetRotationAddress tries to read the state of 'governance' and extract rotation address If succeeds, it means this block is fake. If fails, return nil
func MustGetChainInfo ¶
MustGetChainInfo return global variables of the chain
func MustGetChainOwnerID ¶
func MustGetChainOwnerID(state kv.KVStoreReader) isc.AgentID
func MustGetGasFeePolicy ¶ added in v0.3.0
func MustGetGasFeePolicy(state kv.KVStoreReader) *gas.FeePolicy
func MustGetGasLimits ¶ added in v1.0.3
func MustGetGasLimits(state kv.KVStoreReader) *gas.Limits
func SetCustomMetadata ¶
Types ¶
type AccessNodeInfo ¶ added in v0.2.3
type AccessNodeInfo struct { NodePubKey []byte // Public Key of the node. Stored as a key in the SC State and Params. ValidatorAddr []byte // Address of the validator owning the node. Not sent via parameters. Certificate []byte // Proof that Validator owns the Node. ForCommittee bool // true, if Node should be a candidate to a committee. AccessAPI string // API URL, if any. }
AccessNodeInfo conveys all the information that is maintained on the governance SC about a specific node.
func NewAccessNodeInfoFromAddCandidateNodeParams ¶ added in v0.2.3
func NewAccessNodeInfoFromAddCandidateNodeParams(ctx isc.Sandbox) *AccessNodeInfo
func NewAccessNodeInfoFromBytes ¶ added in v0.2.3
func NewAccessNodeInfoFromBytes(pubKey, value []byte) (*AccessNodeInfo, error)
func NewAccessNodeInfoFromRevokeAccessNodeParams ¶ added in v0.2.3
func NewAccessNodeInfoFromRevokeAccessNodeParams(ctx isc.Sandbox) *AccessNodeInfo
func NewAccessNodeInfoListFromMap ¶ added in v0.2.4
func NewAccessNodeInfoListFromMap(infoMap *collections.ImmutableMap) ([]*AccessNodeInfo, error)
func (*AccessNodeInfo) AddCertificate ¶ added in v0.2.3
func (a *AccessNodeInfo) AddCertificate(nodeKeyPair *cryptolib.KeyPair, ownerAddress iotago.Address) *AccessNodeInfo
func (*AccessNodeInfo) Bytes ¶ added in v0.2.3
func (a *AccessNodeInfo) Bytes() []byte
func (*AccessNodeInfo) ToAddCandidateNodeParams ¶ added in v0.2.3
func (a *AccessNodeInfo) ToAddCandidateNodeParams() dict.Dict
func (*AccessNodeInfo) ToRevokeAccessNodeParams ¶ added in v0.2.3
func (a *AccessNodeInfo) ToRevokeAccessNodeParams() dict.Dict
func (*AccessNodeInfo) ValidateCertificate ¶ added in v0.2.3
func (a *AccessNodeInfo) ValidateCertificate(ctx isc.Sandbox) bool
type ChangeAccessNodeAction ¶ added in v0.2.3
type ChangeAccessNodeAction byte
type ChangeAccessNodesRequest ¶ added in v0.2.3
type ChangeAccessNodesRequest struct {
// contains filtered or unexported fields
}
func NewChangeAccessNodesRequest ¶ added in v0.2.3
func NewChangeAccessNodesRequest() *ChangeAccessNodesRequest
func (*ChangeAccessNodesRequest) Accept ¶ added in v0.2.3
func (req *ChangeAccessNodesRequest) Accept(pubKey *cryptolib.PublicKey) *ChangeAccessNodesRequest
func (*ChangeAccessNodesRequest) AsDict ¶ added in v0.2.3
func (req *ChangeAccessNodesRequest) AsDict() dict.Dict
func (*ChangeAccessNodesRequest) Drop ¶ added in v0.2.3
func (req *ChangeAccessNodesRequest) Drop(pubKey *cryptolib.PublicKey) *ChangeAccessNodesRequest
func (*ChangeAccessNodesRequest) Remove ¶ added in v0.2.3
func (req *ChangeAccessNodesRequest) Remove(pubKey *cryptolib.PublicKey) *ChangeAccessNodesRequest
type ContractFeesRecord ¶
type ContractFeesRecord struct { // Chain owner part of the fee. If it is 0, it means chain-global default is in effect OwnerFee uint64 // Validator part of the fee. If it is 0, it means chain-global default is in effect ValidatorFee uint64 }
ContractFeesRecord is a structure which contains the fee information for a contract
func ContractFeesRecordFromMarshalUtil ¶
func ContractFeesRecordFromMarshalUtil(mu *marshalutil.MarshalUtil) (*ContractFeesRecord, error)
func (*ContractFeesRecord) Bytes ¶
func (p *ContractFeesRecord) Bytes() []byte
type GetChainNodesRequest ¶ added in v0.2.3
type GetChainNodesRequest struct{}
GetChainNodesRequest
func (GetChainNodesRequest) AsDict ¶ added in v0.2.3
func (req GetChainNodesRequest) AsDict() dict.Dict
type GetChainNodesResponse ¶ added in v0.2.3
type GetChainNodesResponse struct { AccessNodeCandidates []*AccessNodeInfo // Application info for the AccessNodes. AccessNodes []*cryptolib.PublicKey // Public Keys of Access Nodes. }
GetChainNodesResponse
func NewGetChainNodesResponseFromDict ¶ added in v0.2.3
func NewGetChainNodesResponseFromDict(d dict.Dict) *GetChainNodesResponse
type NodeOwnershipCertificate ¶ added in v0.2.4
type NodeOwnershipCertificate []byte
NodeOwnershipCertificate is a proof that a specified address is an owner of the specified node. It is implemented as a signature over the node pub key concatenated with the owner address.
func NewNodeOwnershipCertificate ¶ added in v0.2.4
func NewNodeOwnershipCertificate(nodeKeyPair *cryptolib.KeyPair, ownerAddress iotago.Address) NodeOwnershipCertificate
func NewNodeOwnershipCertificateFromBytes ¶ added in v0.2.4
func NewNodeOwnershipCertificateFromBytes(data []byte) NodeOwnershipCertificate
func (NodeOwnershipCertificate) Bytes ¶ added in v0.2.4
func (c NodeOwnershipCertificate) Bytes() []byte
type StateAccess ¶ added in v1.0.3
type StateAccess struct {
// contains filtered or unexported fields
}
func NewStateAccess ¶ added in v1.0.3
func NewStateAccess(store kv.KVStoreReader) *StateAccess
func (*StateAccess) GetAccessNodes ¶
func (sa *StateAccess) GetAccessNodes() []*cryptolib.PublicKey
func (*StateAccess) GetCandidateNodes ¶
func (sa *StateAccess) GetCandidateNodes() []*AccessNodeInfo
func (*StateAccess) GetMaintenanceStatus ¶
func (sa *StateAccess) GetMaintenanceStatus() bool
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
This file provides implementation for the governance SC, the ChainNode management functions.
|
This file provides implementation for the governance SC, the ChainNode management functions. |