Documentation ¶
Index ¶
- Constants
- Variables
- func IsValidStepType(s string) bool
- func NewBTPMsg(nid int64, msg []byte) *bTPMsg
- func NewNetwork(ntid int64, name string, owner module.Address, startHeight int64, ...) *network
- func NewNetworkFromBytes(b []byte) *network
- func NewNetworkType(uid string, proofContext module.BTPProofContext) *networkType
- func NewNetworkTypeFromBytes(b []byte) *networkType
- func ValidateEEType(et EEType) bool
- func ValidatorFromAddress(a module.Address) (module.Validator, error)
- func ValidatorFromPublicKey(pk []byte) (module.Validator, error)
- type AccountSnapshot
- type AccountState
- type BTPContext
- type BTPSnapshot
- type BTPState
- type BTPStateImpl
- func (bs *BTPStateImpl) BuildAndApplySection(bc BTPContext, btpMsgs *list.List) (module.BTPSection, error)
- func (bs *BTPStateImpl) CheckPublicKey(bc BTPContext, from module.Address) error
- func (bd *BTPStateImpl) Clone() btpData
- func (bs *BTPStateImpl) CloseNetwork(bc BTPContext, nid int64) (int64, error)
- func (bs *BTPStateImpl) GetSnapshot() BTPSnapshot
- func (bs *BTPStateImpl) HandleMessage(bc BTPContext, from module.Address, nid int64) (int64, error)
- func (bs *BTPStateImpl) OpenNetwork(bc BTPContext, networkTypeName string, name string, owner module.Address) (ntid int64, nid int64, err error)
- func (bs *BTPStateImpl) Reset(snapshot BTPSnapshot)
- func (bs *BTPStateImpl) SetPublicKey(bc BTPContext, from module.Address, name string, pubKey []byte) error
- func (bs *BTPStateImpl) StoreValidators(vs ValidatorState)
- type ContractInfo
- type ContractSnapshot
- type ContractState
- type ContractStatus
- type DepositContext
- type EEType
- type EETypeFilter
- type EETypes
- type ExtensionSnapshot
- type ExtensionState
- type LockRequest
- type PayContext
- type Platform
- type StepType
- type TransactionInfo
- type ValidatorSnapshot
- type ValidatorState
- type WorldContext
- type WorldSnapshot
- func NewWorldSnapshot(dbase db.Database, stateHash []byte, vs ValidatorSnapshot, ...) WorldSnapshot
- func NewWorldSnapshotWithBuilder(builder merkle.Builder, sh []byte, vh []byte, ess ExtensionSnapshot, bh []byte) (WorldSnapshot, error)
- func NewWorldSnapshotWithNewValidators(dbase db.Database, snapshot WorldSnapshot, vss ValidatorSnapshot) WorldSnapshot
- type WorldState
- type WorldVirtualState
Constants ¶
View Source
const ( AccountVersion1 = iota + 1 AccountVersion2 AccountVersion = AccountVersion1 )
View Source
const ( ASDisabled = 1 << iota ASBlocked ASUseSystemDeposit )
View Source
const ( ExObjectGraph int = 1 << iota ExDepositInfo )
View Source
const ( ActiveNetworkTypeIDsKey = "activeNetworkTypeIDs" NetworkTypeIDKey = "networkTypeID" NetworkTypeIDByUIDKey = "networkTypeIDByUID" NetworkTypeByIDKey = "networkTypeByID" NetworkIDKey = "networkID" NetworkByIDKey = "networkByID" PubKeyByNameKey = "pubKeyByName" PubKeyOwner = "pubKeyOwner" PubKeyMaskByNameKey = "pubKeyMaskByName" DSAArrayKey = "dsaArray" ActiveDSAMaskKey = "activeDSAMask" )
View Source
const ( GIGA = 1000 * 1000 * 1000 TERA = 1000 * GIGA PETA = 1000 * TERA EXA = 1000 * PETA )
TODO Check if everything here is adequate for state package.
View Source
const ( StepTypeDefault = "default" StepTypeContractCall = "contractCall" StepTypeContractCreate = "contractCreate" StepTypeContractUpdate = "contractUpdate" StepTypeContractDestruct = "contractDestruct" StepTypeContractSet = "contractSet" StepTypeGet = "get" StepTypeSet = "set" StepTypeReplace = "replace" StepTypeDelete = "delete" StepTypeInput = "input" StepTypeEventLog = "eventLog" StepTypeApiCall = "apiCall" StepTypeSchema = "schema" StepTypeGetBase = "getBase" StepTypeSetBase = "setBase" StepTypeDeleteBase = "deleteBase" StepTypeLogBase = "logBase" StepTypeLog = "log" )
View Source
const ( StepLimitTypeInvoke = "invoke" StepLimitTypeQuery = "query" )
View Source
const ( CTAppZip = "application/zip" CTAppJava = "application/java" CTAppSystem = "application/x.score.system" )
View Source
const ( DepositVersion1 int = iota DepositVersion2 )
View Source
const ( VarStepPrice = "step_price" VarStepCosts = "step_costs" VarStepTypes = "step_types" VarTreasury = "treasury" VarGovernance = "governance" VarNetwork = "network" VarChainID = "chain_id" VarStepLimitTypes = "step_limit_types" VarStepLimit = "step_limit" VarServiceConfig = "serviceConfig" VarRevision = "revision" VarMembers = "members" VarDeployers = "deployers" VarLicenses = "licenses" VarTotalSupply = "total_supply" VarTimestampThreshold = "timestamp_threshold" VarBlockInterval = "block_interval" VarCommitTimeout = "commit_timeout" VarRoundLimitFactor = "round_limit_factor" VarMinimizeBlockGen = "minimize_block_gen" VarTxHashToAddress = "tx_to_address" VarDepositTerm = "deposit_term" VarDepositIssueRate = "deposit_issue_rate" VarNextBlockVersion = "next_block_version" VarEnabledEETypes = "enabled_ee_types" VarSystemDepositUsage = "system_deposit_usage" )
View Source
const ( SysConfigFee = 1 << iota SysConfigAudit SysConfigDeployerWhiteList SysConfigScorePackageValidator SysConfigMembership SysConfigFeeSharing )
View Source
const ( InfoBlockTimestamp = "B.timestamp" InfoBlockHeight = "B.height" InfoTxHash = "T.hash" InfoTxIndex = "T.index" InfoTxTimestamp = "T.timestamp" InfoTxNonce = "T.nonce" InfoTxFrom = "T.from" InfoRevision = "Revision" InfoStepCosts = "StepCosts" InfoContractOwner = "C.owner" )
View Source
const ( AccountNoLock = 0 AccountReadLock = 1 AccountWriteLock = 2 AccountWriteUnlock = 3 )
View Source
const (
AllEETypeString = "*"
)
View Source
const (
DefaultNID = 1
)
View Source
const (
LostIDStr = "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
)
View Source
const (
MissingGraphDataError = iota + errors.CodeService + 500
)
View Source
const (
SystemIDStr = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
)
View Source
const (
VarBlockedScores = "blocked_scores"
)
View Source
const (
WorldIDStr = ""
)
Variables ¶
View Source
var ( SystemID = []byte(SystemIDStr) SystemAddress = common.NewContractAddress(SystemID) ZeroAddress = common.NewAccountAddress(SystemID) )
View Source
var ( LostID = []byte(LostIDStr) LostAddress = common.NewAccountAddress(LostID) )
View Source
var AccountType = reflect.TypeOf((*accountSnapshotImpl)(nil))
View Source
var AllStepLimitTypes = []string{ StepLimitTypeInvoke, StepLimitTypeQuery, }
View Source
var AllStepTypes = []string{ StepTypeDefault, StepTypeContractCall, StepTypeContractCreate, StepTypeContractUpdate, StepTypeContractDestruct, StepTypeContractSet, StepTypeGet, StepTypeSet, StepTypeReplace, StepTypeDelete, StepTypeInput, StepTypeEventLog, StepTypeApiCall, StepTypeSchema, StepTypeGetBase, StepTypeSetBase, StepTypeDeleteBase, StepTypeLogBase, StepTypeLog, }
Functions ¶
func IsValidStepType ¶ added in v0.9.8
func NewNetwork ¶ added in v1.3.0
func NewNetworkFromBytes ¶ added in v1.3.0
func NewNetworkFromBytes(b []byte) *network
func NewNetworkType ¶ added in v1.3.0
func NewNetworkType(uid string, proofContext module.BTPProofContext) *networkType
func NewNetworkTypeFromBytes ¶ added in v1.3.0
func NewNetworkTypeFromBytes(b []byte) *networkType
func ValidateEEType ¶ added in v0.9.10
Types ¶
type AccountSnapshot ¶
type AccountSnapshot interface { trie.Object Version() int GetBalance() *big.Int IsContract() bool IsEmpty() bool GetValue(k []byte) ([]byte, error) StorageChangedAfter(snapshot AccountSnapshot) bool IsContractOwner(owner module.Address) bool APIInfo() (*scoreapi.Info, error) Contract() ContractSnapshot ActiveContract() ContractSnapshot NextContract() ContractSnapshot IsDisabled() bool IsBlocked() bool UseSystemDeposit() bool ContractOwner() module.Address GetObjGraph(hash []byte, flags bool) (int, []byte, []byte, error) CanAcceptTx(pc PayContext) bool CheckDeposit(pc PayContext) bool GetDepositInfo(dc DepositContext, v module.JSONVersion) (map[string]interface{}, error) }
AccountSnapshot represents immutable account state It can be get from AccountState or WorldSnapshot.
type AccountState ¶
type AccountState interface { Version() int MigrateForRevision(rev module.Revision) error GetBalance() *big.Int IsContract() bool GetValue(k []byte) ([]byte, error) SetBalance(v *big.Int) SetValue(k, v []byte) ([]byte, error) DeleteValue(k []byte) ([]byte, error) GetSnapshot() AccountSnapshot Reset(snapshot AccountSnapshot) error Clear() IsContractOwner(owner module.Address) bool SetContractOwner(owner module.Address) error InitContractAccount(address module.Address) bool DeployContract(code []byte, eeType EEType, contentType string, params []byte, txHash []byte) ([]byte, error) APIInfo() (*scoreapi.Info, error) SetAPIInfo(*scoreapi.Info) ActivateNextContract() error AcceptContract(txHash []byte, auditTxHash []byte) error RejectContract(txHash []byte, auditTxHash []byte) error Contract() ContractState ActiveContract() ContractState NextContract() ContractState SetDisable(b bool) IsDisabled() bool SetBlock(b bool) IsBlocked() bool UseSystemDeposit() bool SetUseSystemDeposit(yn bool) error ContractOwner() module.Address GetObjGraph(id []byte, flags bool) (int, []byte, []byte, error) SetObjGraph(id []byte, flags bool, nextHash int, objGraph []byte) error AddDeposit(dc DepositContext, value *big.Int) error WithdrawDeposit(dc DepositContext, id []byte, value *big.Int) (*big.Int, *big.Int, error) PaySteps(pc PayContext, steps *big.Int) (*big.Int, *big.Int, error) CanAcceptTx(pc PayContext) bool CheckDeposit(pc PayContext) bool GetDepositInfo(dc DepositContext, v module.JSONVersion) (map[string]interface{}, error) }
AccountState represents mutable account state. You may change account state with this object. It can be get from WorldState. Changes in this object will be retrieved by WorldState. Of course, it also can be changed by WorldState.
type BTPContext ¶ added in v1.3.0
type BTPContext interface { btp.StateView Store() containerdb.BytesStoreState BlockHeight() int64 GetValidatorState() ValidatorState GetNetworkTypeIDs() ([]int64, error) GetNetworkTypeIDByName(name string) int64 GetNetworkType(ntid int64) (module.BTPNetworkType, error) GetNetwork(nid int64) (module.BTPNetwork, error) GetPublicKey(address module.Address, name string) []byte GetPublicKeyMask(address module.Address) int64 GetDSAIndex(name string) int GetActiveDSAMask() int64 }
func NewBTPContext ¶ added in v1.3.0
func NewBTPContext(wc WorldContext, store containerdb.BytesStoreState) BTPContext
type BTPSnapshot ¶ added in v1.3.0
func NewBTPSnapshot ¶ added in v1.3.0
func NewBTPSnapshot(dbase db.Database, hash []byte) BTPSnapshot
type BTPState ¶ added in v1.3.0
type BTPState interface { GetSnapshot() BTPSnapshot Reset(snapshot BTPSnapshot) StoreValidators(vs ValidatorState) BuildAndApplySection(bc BTPContext, btpMsgs *list.List) (module.BTPSection, error) }
type BTPStateImpl ¶ added in v1.3.0
type BTPStateImpl struct {
// contains filtered or unexported fields
}
func (*BTPStateImpl) BuildAndApplySection ¶ added in v1.3.0
func (bs *BTPStateImpl) BuildAndApplySection(bc BTPContext, btpMsgs *list.List) (module.BTPSection, error)
func (*BTPStateImpl) CheckPublicKey ¶ added in v1.3.0
func (bs *BTPStateImpl) CheckPublicKey(bc BTPContext, from module.Address) error
func (*BTPStateImpl) CloseNetwork ¶ added in v1.3.0
func (bs *BTPStateImpl) CloseNetwork(bc BTPContext, nid int64) (int64, error)
func (*BTPStateImpl) GetSnapshot ¶ added in v1.3.0
func (bs *BTPStateImpl) GetSnapshot() BTPSnapshot
func (*BTPStateImpl) HandleMessage ¶ added in v1.3.0
func (bs *BTPStateImpl) HandleMessage(bc BTPContext, from module.Address, nid int64) (int64, error)
func (*BTPStateImpl) OpenNetwork ¶ added in v1.3.0
func (bs *BTPStateImpl) OpenNetwork( bc BTPContext, networkTypeName string, name string, owner module.Address, ) (ntid int64, nid int64, err error)
func (*BTPStateImpl) Reset ¶ added in v1.3.0
func (bs *BTPStateImpl) Reset(snapshot BTPSnapshot)
func (*BTPStateImpl) SetPublicKey ¶ added in v1.3.0
func (bs *BTPStateImpl) SetPublicKey(bc BTPContext, from module.Address, name string, pubKey []byte) error
func (*BTPStateImpl) StoreValidators ¶ added in v1.3.0
func (bs *BTPStateImpl) StoreValidators(vs ValidatorState)
type ContractInfo ¶
type ContractSnapshot ¶
type ContractState ¶
type ContractState interface { ContractSnapshot SetCode([]byte) error }
type ContractStatus ¶ added in v1.2.9
type ContractStatus int
const ( CSInactive ContractStatus = 1 << iota CSActive CSPending CSRejected )
func (ContractStatus) String ¶ added in v1.2.9
func (cs ContractStatus) String() string
type DepositContext ¶ added in v0.9.3
type EEType ¶
type EEType string
func EETypeFromContentType ¶
func MustEETypeFromContentType ¶ added in v0.9.4
func (EEType) AbleToUpdate ¶ added in v0.9.10
func (EEType) InstallMethod ¶
func (EEType) IsInternalMethod ¶
type EETypeFilter ¶ added in v0.9.10
func (EETypeFilter) Contains ¶ added in v0.9.10
func (ets EETypeFilter) Contains(et EEType) bool
func (EETypeFilter) String ¶ added in v0.9.10
func (ets EETypeFilter) String() string
type EETypes ¶ added in v0.9.10
var AllEETypes EETypes = allEETypes{}
func ParseEETypes ¶ added in v0.9.10
type ExtensionSnapshot ¶ added in v0.9.1
type ExtensionSnapshot interface { Bytes() []byte Flush() error NewState(readonly bool) ExtensionState }
type ExtensionState ¶ added in v0.9.1
type ExtensionState interface { GetSnapshot() ExtensionSnapshot Reset(snapshot ExtensionSnapshot) ClearCache() }
type LockRequest ¶
type PayContext ¶ added in v0.9.4
type TransactionInfo ¶
type ValidatorSnapshot ¶
type ValidatorSnapshot module.ValidatorList
func NewValidatorSnapshotWithBuilder ¶
func NewValidatorSnapshotWithBuilder(builder merkle.Builder, h []byte) (ValidatorSnapshot, error)
func ValidatorSnapshotFromHash ¶
func ValidatorSnapshotFromHash(database db.Database, h []byte) (ValidatorSnapshot, error)
type ValidatorState ¶
type ValidatorState interface { IndexOf(module.Address) int Len() int Get(i int) (module.Validator, bool) Set([]module.Validator) error Add(v module.Validator) error Remove(v module.Validator) bool GetSnapshot() ValidatorSnapshot Reset(ValidatorSnapshot) }
func ValidatorStateFromHash ¶
func ValidatorStateFromHash(database db.Database, h []byte) (ValidatorState, error)
func ValidatorStateFromSnapshot ¶
func ValidatorStateFromSnapshot(vss ValidatorSnapshot) ValidatorState
type WorldContext ¶
type WorldContext interface { WorldState Revision() module.Revision ToRevision(v int) module.Revision StepsFor(t StepType, n int) int64 StepPrice() *big.Int BlockTimeStamp() int64 GetStepLimit(t string) *big.Int BlockHeight() int64 ConsensusInfo() module.ConsensusInfo Treasury() module.Address Governance() module.Address GetInfo() map[string]interface{} WorldStateChanged(ws WorldState) WorldContext WorldVirtualState() WorldVirtualState GetFuture(lq []LockRequest) WorldContext SetTransactionInfo(ti *TransactionInfo) TransactionInfo() *TransactionInfo TransactionID() []byte NextTransactionSalt() *big.Int SetContractInfo(si *ContractInfo) DepositIssueRate() *big.Int FeeLimit() *big.Int DepositTerm() int64 UpdateSystemInfo() IsDeployer(addr string) bool FeeEnabled() bool AuditEnabled() bool FeeSharingEnabled() bool DeployerWhiteListEnabled() bool PackageValidatorEnabled() bool MembershipEnabled() bool TransactionTimestampThreshold() int64 EnableSkipTransaction() SkipTransactionEnabled() bool }
func NewWorldContext ¶
func NewWorldContext(ws WorldState, bi module.BlockInfo, csi module.ConsensusInfo, plt Platform) WorldContext
type WorldSnapshot ¶
type WorldSnapshot interface { GetAccountSnapshot(id []byte) AccountSnapshot GetValidatorSnapshot() ValidatorSnapshot GetExtensionSnapshot() ExtensionSnapshot GetBTPSnapshot() BTPSnapshot Flush() error StateHash() []byte ExtensionData() []byte BTPData() []byte Database() db.Database }
WorldSnapshot represents snapshot of WorldState. It can be use to WorldState recover state of WorldState to at some point.
func NewWorldSnapshot ¶
func NewWorldSnapshot( dbase db.Database, stateHash []byte, vs ValidatorSnapshot, es ExtensionSnapshot, btpData []byte, ) WorldSnapshot
func NewWorldSnapshotWithBuilder ¶
func NewWorldSnapshotWithBuilder( builder merkle.Builder, sh []byte, vh []byte, ess ExtensionSnapshot, bh []byte, ) (WorldSnapshot, error)
func NewWorldSnapshotWithNewValidators ¶
func NewWorldSnapshotWithNewValidators(dbase db.Database, snapshot WorldSnapshot, vss ValidatorSnapshot) WorldSnapshot
type WorldState ¶
type WorldState interface { GetAccountState(id []byte) AccountState GetAccountSnapshot(id []byte) AccountSnapshot GetSnapshot() WorldSnapshot GetValidatorState() ValidatorState GetExtensionState() ExtensionState GetBTPState() BTPState Reset(snapshot WorldSnapshot) error ClearCache() EnableNodeCache() NodeCacheEnabled() bool Database() db.Database EnableAccountNodeCache(id []byte) bool }
WorldState represents world state. You may change
func NewReadOnlyWorldState ¶
func NewReadOnlyWorldState(wss WorldSnapshot) WorldState
func NewWorldState ¶
func NewWorldState( database db.Database, stateHash []byte, vs ValidatorSnapshot, es ExtensionSnapshot, btpHash []byte, ) WorldState
func WorldStateFromSnapshot ¶
func WorldStateFromSnapshot(wss WorldSnapshot) (WorldState, error)
type WorldVirtualState ¶
type WorldVirtualState interface { WorldState GetFuture(reqs []LockRequest) WorldVirtualState Ensure() Commit() Realize() }
func NewWorldVirtualState ¶
func NewWorldVirtualState(ws WorldState, reqs []LockRequest) WorldVirtualState
Click to show internal directories.
Click to hide internal directories.