Documentation ¶
Index ¶
- Constants
- Variables
- func AttachAPIInfoCache(dbase db.Database, size int) (db.Database, error)
- func GetAPIInfoFromBucket(bk db.Bucket, hash []byte) (*scoreapi.Info, error)
- func IsValidStepLimitType(s string) bool
- func IsValidStepType(s string) bool
- func MustEncodeAPIInfo(info *scoreapi.Info) ([]byte, []byte)
- 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 NewValidatorListFromBytes(bs []byte) (module.ValidatorList, error)
- func ToSliceOfValidatorPtr(vl []module.Validator) ([]*validator, error)
- func ToValidatorList(list module.ValidatorList) (module.ValidatorList, error)
- func ValidateEEType(et EEType) bool
- func ValidatorFromAddress(a module.Address) (module.Validator, error)
- func ValidatorFromPublicKey(pk []byte) (module.Validator, error)
- type APIInfoBucket
- type AccountData
- 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 PlatformWithDoubleSignDataDecoder
- type StepType
- type TransactionInfo
- type ValidatorSnapshot
- func NewValidatorSnapshotWithBuilder(builder merkle.Builder, h []byte) (ValidatorSnapshot, error)
- func ValidatorSnapshotFromHash(database db.Database, h []byte) (ValidatorSnapshot, error)
- func ValidatorSnapshotFromList(database db.Database, vl module.ValidatorList) (ValidatorSnapshot, error)
- func ValidatorSnapshotFromSlice(database db.Database, vl []module.Validator) (ValidatorSnapshot, error)
- 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" VarDSRContextHistory = "dsr_context_history" )
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 APIInfoCache = "cache.api_info"
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 AttachAPIInfoCache ¶ added in v1.3.12
func GetAPIInfoFromBucket ¶ added in v1.3.12
func IsValidStepLimitType ¶ added in v1.4.0
func IsValidStepType ¶ added in v0.9.8
func MustEncodeAPIInfo ¶ added in v1.3.12
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 NewValidatorListFromBytes ¶ added in v1.3.10
func NewValidatorListFromBytes(bs []byte) (module.ValidatorList, error)
func ToSliceOfValidatorPtr ¶ added in v1.3.6
func ToValidatorList ¶ added in v1.3.10
func ToValidatorList(list module.ValidatorList) (module.ValidatorList, error)
func ValidateEEType ¶ added in v0.9.10
Types ¶
type APIInfoBucket ¶ added in v1.3.12
type APIInfoBucket interface { Get(hash []byte) (*scoreapi.Info, error) Set(hash, bytes []byte, info *scoreapi.Info) error }
func GetAPIInfoBucket ¶ added in v1.3.12
func GetAPIInfoBucket(dbase db.Database) (APIInfoBucket, error)
type AccountData ¶ added in v1.3.3
type AccountData interface { Version() int GetBalance() *big.Int IsContract() bool IsEmpty() bool IsDisabled() bool IsBlocked() bool UseSystemDeposit() bool GetValue(k []byte) ([]byte, error) IsContractOwner(owner module.Address) bool ContractOwner() module.Address APIInfo() (*scoreapi.Info, error) CanAcceptTx(pc PayContext) bool CheckDeposit(pc PayContext) bool GetObjGraph(hash []byte, flags bool) (int, []byte, []byte, error) GetDepositInfo(dc DepositContext, v module.JSONVersion) (map[string]interface{}, error) }
type AccountSnapshot ¶
type AccountSnapshot interface { AccountData trie.Object StorageChangedAfter(snapshot AccountSnapshot) bool Contract() ContractSnapshot ActiveContract() ContractSnapshot NextContract() ContractSnapshot }
AccountSnapshot represents immutable account state It can be get from AccountState or WorldSnapshot.
type AccountState ¶
type AccountState interface { AccountData MigrateForRevision(rev module.Revision) error SetBalance(v *big.Int) SetValue(k, v []byte) ([]byte, error) DeleteValue(k []byte) ([]byte, error) GetSnapshot() AccountSnapshot Reset(snapshot AccountSnapshot) error Clear() SetContractOwner(owner module.Address) error InitContractAccount(address module.Address) bool DeployContract(code []byte, eeType EEType, contentType string, params []byte, txHash []byte) ([]byte, 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) SetBlock(b bool) SetUseSystemDeposit(yn bool) 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) }
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 PlatformWithDoubleSignDataDecoder ¶ added in v1.3.13
type PlatformWithDoubleSignDataDecoder interface { Platform DoubleSignDataDecoder() module.DoubleSignDataDecoder }
type TransactionInfo ¶
type ValidatorSnapshot ¶
type ValidatorSnapshot interface { module.ValidatorList Flush() error }
func NewValidatorSnapshotWithBuilder ¶
func NewValidatorSnapshotWithBuilder(builder merkle.Builder, h []byte) (ValidatorSnapshot, error)
func ValidatorSnapshotFromHash ¶
func ValidatorSnapshotFromHash(database db.Database, h []byte) (ValidatorSnapshot, error)
func ValidatorSnapshotFromList ¶ added in v1.3.10
func ValidatorSnapshotFromList(database db.Database, vl module.ValidatorList) (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 Replace(ov, nv module.Validator) error SetAt(i int, v module.Validator) error 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 DecodeDoubleSignContext(t string, d []byte) (module.DoubleSignContext, error) DecodeDoubleSignData(t string, d []byte) (module.DoubleSignData, error) GetDoubleSignContextRoot() (module.DoubleSignContextRoot, error) }
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
Source Files ¶
Click to show internal directories.
Click to hide internal directories.