base

package
v0.0.0-...-b124b1e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SubModName = "$acl"
	StatusOK   = 200
)

Variables

This section is empty.

Functions

func GetACLSeparator

func GetACLSeparator() string

GetACLSeparator return the acl separator string

func GetAK2AccountBucket

func GetAK2AccountBucket() string

GetAK2AccountBucket return the ak2Account bucket

func GetAKAccountSeparator

func GetAKAccountSeparator() string

GetAKAccountSeparator return the separator between address and account

func GetAccount2ContractBucket

func GetAccount2ContractBucket() string

GetAccount2ContractBucket get the bucket name of account to contract map

func GetAccountBcnameSep

func GetAccountBcnameSep() string

GetAccountBcnameSep return the separator string for account and blockchain name

func GetAccountBucket

func GetAccountBucket() string

GetAccountBucket return the account bucket name

func GetAccountContractValue

func GetAccountContractValue() string

GetAccountContractValue return accountContractValue

func GetAccountPrefix

func GetAccountPrefix() string

GetAccountPrefix return the account prefix

func GetAccountSize

func GetAccountSize() int

GetAccountSize return the account number size

func GetAkLimit

func GetAkLimit() int

GetAkLimit return maximum AK numbers of an ACL

func GetContract2AccountBucket

func GetContract2AccountBucket() string

GetContract2AccountBucket get the bucket name of contract to account map

func GetContractBucket

func GetContractBucket() string

GetContractBucket return the contract bucket name

func GetContractNameMaxSize

func GetContractNameMaxSize() int

GetContractNameMaxSize return the contract name max size

func GetContractNameMinSize

func GetContractNameMinSize() int

GetContractNameMinSize return the contract name min size

func IsAccount

func IsAccount(name string) int

func MakeAK2AccountKey

func MakeAK2AccountKey(ak string, accountName string) string

MakeAK2AccountKey generate key mixed ak with account as prefix key

func MakeAccountContractKey

func MakeAccountContractKey(accountName string, contractName string) string

MakeAccountContractKey generate account and contract mapping key

func MakeAccountKey

func MakeAccountKey(bcname string, accountName string) string

MakeAccountKey generate account key using blockchain name and account number

func MakeContractMethodKey

func MakeContractMethodKey(contractName string, methodName string) string

MakeContractMethodKey generate contract and account mapping key

func ValidRawAccount

func ValidRawAccount(accountName string) error

ValidRawAccount validate account number

Types

type AclCtx

type AclCtx struct {
	// 基础上下文
	xctx.BaseCtx
	BcName   string
	Ledger   LedgerRely
	Contract base.Manager
}

func NewAclCtx

func NewAclCtx(bcName string, leg LedgerRely, contract base.Manager) (*AclCtx, error)

最核心的是账本依赖和合约管理

type AclManager

type AclManager interface {
	GetAccountACL(accountName string) (*protos.Acl, error)
	GetContractMethodACL(contractName, methodName string) (*protos.Acl, error)
	GetAccountAddresses(accountName string) ([]string, error)
}

type LedgerRely

type LedgerRely interface {
	// 从创世块获取创建合约账户消耗gas
	GetNewAccountGas() (int64, error)
	// 获取状态机最新确认快照
	GetTipXMSnapshotReader() (ledger.SnapshotReader, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL