Documentation ¶
Index ¶
- Constants
- Variables
- func GetAcountNameRegExp() *regexp.Regexp
- func SetAccountNameConfig(config *Config) bool
- func SetAcctMangerName(name common.Name)
- type Account
- func (a *Account) AddAuthor(author *common.Author) error
- func (a *Account) AddBalanceByID(assetID uint64, value *big.Int) error
- func (a *Account) AddNewAssetByAssetID(assetID uint64, amount *big.Int)
- func (a *Account) DeleteAuthor(author *common.Author) error
- func (a *Account) EnoughAccountBalance(assetID uint64, value *big.Int) error
- func (a *Account) GetAccountID() uint64
- func (a *Account) GetAccountNumber() uint64
- func (a *Account) GetAllBalances() (map[uint64]*big.Int, error)
- func (a *Account) GetAuthorVersion() common.Hash
- func (a *Account) GetBalanceByID(assetID uint64) (*big.Int, error)
- func (a *Account) GetBalancesList() []*AssetBalance
- func (a *Account) GetCode() ([]byte, error)
- func (a *Account) GetCodeHash() (common.Hash, error)
- func (a *Account) GetCodeSize() uint64
- func (a *Account) GetFounder() common.Name
- func (a *Account) GetName() common.Name
- func (a *Account) GetNonce() uint64
- func (a *Account) GetThreshold() uint64
- func (a *Account) GetUpdateAuthorThreshold() uint64
- func (a *Account) HaveCode() bool
- func (a *Account) IsDestroyed() bool
- func (a *Account) IsEmpty() bool
- func (a *Account) IsSuicided() bool
- func (a *Account) SetAccountID(id uint64)
- func (a *Account) SetAccountNumber(number uint64)
- func (a *Account) SetAuthorVersion()
- func (a *Account) SetBalance(assetID uint64, amount *big.Int) error
- func (a *Account) SetCode(code []byte) error
- func (a *Account) SetDestroy()
- func (a *Account) SetFounder(f common.Name)
- func (a *Account) SetNonce(nonce uint64)
- func (a *Account) SetSuicide()
- func (a *Account) SetThreshold(t uint64)
- func (a *Account) SetUpdateAuthorThreshold(t uint64)
- func (a *Account) SubBalanceByID(assetID uint64, value *big.Int) error
- func (a *Account) UpdateAuthor(author *common.Author) error
- type AccountAuthorAction
- type AccountManager
- func (am *AccountManager) AccountHaveCode(accountName common.Name) (bool, error)
- func (am *AccountManager) AccountIDIsExist(accountID uint64) (bool, error)
- func (am *AccountManager) AccountIsEmpty(accountName common.Name) (bool, error)
- func (am *AccountManager) AccountIsExist(accountName common.Name) (bool, error)
- func (am *AccountManager) AddAccountBalanceByID(accountName common.Name, assetID uint64, value *big.Int) error
- func (am *AccountManager) AddAccountBalanceByName(accountName common.Name, assetName string, value *big.Int) error
- func (am *AccountManager) CanTransfer(accountName common.Name, assetID uint64, value *big.Int) (bool, error)
- func (am *AccountManager) CreateAccount(accountName common.Name, founderName common.Name, number uint64, ...) error
- func (am *AccountManager) CreateAnyAccount(fromName common.Name, accountName common.Name, founderName common.Name, ...) error
- func (am *AccountManager) DeleteAccountByName(accountName common.Name) error
- func (am *AccountManager) EnoughAccountBalance(accountName common.Name, assetID uint64, value *big.Int) error
- func (am *AccountManager) GetAccountBalanceByID(accountName common.Name, assetID uint64, typeID uint64) (*big.Int, error)
- func (am *AccountManager) GetAccountById(id uint64) (*Account, error)
- func (am *AccountManager) GetAccountByName(accountName common.Name) (*Account, error)
- func (am *AccountManager) GetAccountByTime(accountName common.Name, time uint64) (*Account, error)
- func (am *AccountManager) GetAccountIDByName(accountName common.Name) (uint64, error)
- func (am *AccountManager) GetAccountLastChange(accountName common.Name) (uint64, error)
- func (am *AccountManager) GetAllAssetbyAssetId(acct *Account, assetId uint64) (map[uint64]*big.Int, error)
- func (am *AccountManager) GetAllBalancebyAssetID(acct *Account, assetID uint64) (*big.Int, error)
- func (am *AccountManager) GetAssetAmountByTime(assetID uint64, time uint64) (*big.Int, error)
- func (am *AccountManager) GetAssetFounder(assetID uint64) (common.Name, error)
- func (am *AccountManager) GetAssetInfoByID(assetID uint64) (*asset.AssetObject, error)
- func (am *AccountManager) GetAssetInfoByName(assetName string) (*asset.AssetObject, error)
- func (am *AccountManager) GetAuthorVersion(accountName common.Name) (common.Hash, error)
- func (am *AccountManager) GetBalanceByTime(accountName common.Name, assetID uint64, typeID uint64, time uint64) (*big.Int, error)
- func (am *AccountManager) GetCode(accountName common.Name) ([]byte, error)
- func (am *AccountManager) GetCodeSize(accountName common.Name) (uint64, error)
- func (am *AccountManager) GetFounder(accountName common.Name) (common.Name, error)
- func (am *AccountManager) GetNonce(accountName common.Name) (uint64, error)
- func (am *AccountManager) GetSnapshotTime(num uint64, time uint64) (uint64, error)
- func (am *AccountManager) IncAsset2Acct(fromName common.Name, toName common.Name, assetID uint64, amount *big.Int) error
- func (am *AccountManager) InitAccountCounter()
- func (am *AccountManager) IsValidSign(accountName common.Name, pub common.PubKey) error
- func (am *AccountManager) IssueAnyAsset(fromName common.Name, asset IssueAsset, number uint64) (uint64, error)
- func (am *AccountManager) IssueAsset(asset IssueAsset, number uint64) (uint64, error)
- func (am *AccountManager) Process(accountManagerContext *types.AccountManagerContext) ([]*types.InternalAction, error)
- func (am *AccountManager) RecoverTx(signer types.Signer, tx *types.Transaction) error
- func (am *AccountManager) SetAccount(acct *Account) error
- func (am *AccountManager) SetNonce(accountName common.Name, nonce uint64) error
- func (am *AccountManager) SubAccountBalanceByID(accountName common.Name, assetID uint64, value *big.Int) error
- func (am *AccountManager) TransferAsset(fromAccount common.Name, toAccount common.Name, assetID uint64, value *big.Int) error
- func (am *AccountManager) UpdateAccount(accountName common.Name, accountAction *UpdataAccountAction) error
- func (am *AccountManager) UpdateAccountAuthor(accountName common.Name, acctAuth *AccountAuthorAction) error
- func (am *AccountManager) ValidOneSign(acct *Account, index uint64, pub common.PubKey, ...) error
- func (am *AccountManager) ValidSign(accountName common.Name, pub common.PubKey, index []uint64, ...) error
- type AssetBalance
- type AuthorAction
- type AuthorActionType
- type Config
- type CreateAccountAction
- type IAccount
- type IAccountManager
- type IncAsset
- type IssueAsset
- type SdbIf
- type UpdataAccountAction
- type UpdateAsset
- type UpdateAssetOwner
Constants ¶
const MaxDescriptionLength uint64 = 255
Variables ¶
var ( ErrInsufficientBalance = errors.New("insufficient balance") ErrNewAccountErr = errors.New("new account err") ErrAssetIDInvalid = errors.New("asset id invalid") ErrCreateAccountError = errors.New("create account error") ErrAccountInvaid = errors.New("account not permission") ErrAccountIsExist = errors.New("account is exist") ErrNameIsExist = errors.New("name is exist") ErrAccountIsDestroy = errors.New("account is destroy") ErrAccountNotExist = errors.New("account not exist") ErrHashIsEmpty = errors.New("hash is empty") ErrkeyNotSame = errors.New("key not same") ErrAccountNameInvalid = errors.New("account name is Invalid") ErrInvalidPubKey = errors.New("invalid public key") ErrAccountIsNil = errors.New("account object is empty") ErrCodeIsEmpty = errors.New("code is empty") ErrAmountValueInvalid = errors.New("amount value is invalid") ErrAccountAssetNotExist = errors.New("account asset not exist") ErrUnkownTxType = errors.New("not support action type") ErrTimeInvalid = errors.New("input time invalid ") ErrTimeTypeInvalid = errors.New("get snapshot time type invalid ") ErrChargeRatioInvalid = errors.New("charge ratio value invalid ") ErrSnapshotTimeNotExist = errors.New("next snapshot time not exist") ErrAccountManagerNotExist = errors.New("account manager name not exist") ErrAmountMustZero = errors.New("amount must be zero") ErrToNameInvalid = errors.New("action to name(Recipient) invalid") ErrCounterNotExist = errors.New("account global counter not exist") ErrAccountIdInvalid = errors.New("account id invalid") ErrInvalidReceiptAsset = errors.New("invalid receipt of asset") ErrInvalidReceipt = errors.New("invalid receipt") ErrNegativeValue = errors.New("negative value") )
Functions ¶
func GetAcountNameRegExp ¶ added in v0.0.9
func SetAccountNameConfig ¶ added in v0.0.7
func SetAcctMangerName ¶ added in v0.0.7
SetAcctMangerName set the global account manager name
Types ¶
type Account ¶
type Account struct { //LastTime *big.Int AcctName common.Name `json:"accountName"` Founder common.Name `json:"founder"` AccountID uint64 `json:"accountID"` Number uint64 `json:"number"` //ChargeRatio uint64 `json:"chargeRatio"` Nonce uint64 `json:"nonce"` Code []byte `json:"code"` CodeHash common.Hash `json:"codeHash"` CodeSize uint64 `json:"codeSize"` Threshold uint64 `json:"threshold"` UpdateAuthorThreshold uint64 `json:"updateAuthorThreshold"` AuthorVersion common.Hash `json:"authorVersion"` //sort by asset id asc Balances []*AssetBalance `json:"balances"` //realated account, pubkey and address Authors []*common.Author `json:"authors"` //code Suicide Suicide bool `json:"suicide"` //account destroy Destroy bool `json:"destroy"` Description string `json:"description"` }
Account account object
func NewAccount ¶
func NewAccount(accountName common.Name, founderName common.Name, pubkey common.PubKey, description string) (*Account, error)
NewAccount create a new account object.
func (*Account) AddBalanceByID ¶
AddAccountBalanceByID add balance by assetID
func (*Account) AddNewAssetByAssetID ¶
AddNewAssetByAssetID add a new asset to balance list
func (*Account) DeleteAuthor ¶ added in v0.0.7
func (*Account) EnoughAccountBalance ¶
func (*Account) GetAccountID ¶ added in v0.0.7
GetAccountID return account object id
func (*Account) GetAccountNumber ¶ added in v0.0.7
GetAccountNumber return account object number
func (*Account) GetAllBalances ¶
GetAllBalances get all balance list
func (*Account) GetAuthorVersion ¶ added in v0.0.7
func (*Account) GetBalanceByID ¶
GetBalanceByID get balance by asset id
func (*Account) GetBalancesList ¶
func (a *Account) GetBalancesList() []*AssetBalance
GetBalancesList get all balance list
func (*Account) GetCodeHash ¶
GetCodeHash get code hash
func (*Account) GetFounder ¶
GetFounder return account object founder
func (*Account) GetThreshold ¶ added in v0.0.7
func (*Account) GetUpdateAuthorThreshold ¶ added in v0.0.7
func (*Account) IsDestroyed ¶ added in v0.0.7
IsDestroyed is destroyed
func (*Account) SetAccountID ¶ added in v0.0.7
SetAccountID set account object id
func (*Account) SetAccountNumber ¶ added in v0.0.7
SetAccountNumber set account object number
func (*Account) SetAuthorVersion ¶ added in v0.0.7
func (a *Account) SetAuthorVersion()
func (*Account) SetBalance ¶
SetBalance set amount to balance
func (*Account) SetFounder ¶
SetFounder set account object founder
func (*Account) SetThreshold ¶ added in v0.0.7
func (*Account) SetUpdateAuthorThreshold ¶ added in v0.0.7
func (*Account) SubBalanceByID ¶
type AccountAuthorAction ¶ added in v0.0.7
type AccountAuthorAction struct { Threshold uint64 `json:"threshold,omitempty"` UpdateAuthorThreshold uint64 `json:"updateAuthorThreshold,omitempty"` AuthorActions []*AuthorAction `json:"authorActions,omitempty"` }
type AccountManager ¶
type AccountManager struct {
// contains filtered or unexported fields
}
AccountManager represents account management model.
func NewAccountManager ¶
func NewAccountManager(db *state.StateDB) (*AccountManager, error)
NewAccountManager create new account manager
func (*AccountManager) AccountHaveCode ¶ added in v0.0.7
func (am *AccountManager) AccountHaveCode(accountName common.Name) (bool, error)
AccountHaveCode check account have code
func (*AccountManager) AccountIDIsExist ¶ added in v0.0.7
func (am *AccountManager) AccountIDIsExist(accountID uint64) (bool, error)
AccountIDIsExist check account is exist by ID.
func (*AccountManager) AccountIsEmpty ¶
func (am *AccountManager) AccountIsEmpty(accountName common.Name) (bool, error)
AccountIsEmpty check account is empty
func (*AccountManager) AccountIsExist ¶
func (am *AccountManager) AccountIsExist(accountName common.Name) (bool, error)
AccountIsExist check account is exist.
func (*AccountManager) AddAccountBalanceByID ¶
func (am *AccountManager) AddAccountBalanceByID(accountName common.Name, assetID uint64, value *big.Int) error
AddAccountBalanceByID add balance by assetID
func (*AccountManager) AddAccountBalanceByName ¶
func (am *AccountManager) AddAccountBalanceByName(accountName common.Name, assetName string, value *big.Int) error
AddAccountBalanceByName add balance by name
func (*AccountManager) CanTransfer ¶
func (am *AccountManager) CanTransfer(accountName common.Name, assetID uint64, value *big.Int) (bool, error)
CanTransfer check if can transfer.
func (*AccountManager) CreateAccount ¶
func (am *AccountManager) CreateAccount(accountName common.Name, founderName common.Name, number uint64, pubkey common.PubKey, detail string) error
CreateAccount contract account
func (*AccountManager) CreateAnyAccount ¶ added in v0.0.7
func (am *AccountManager) CreateAnyAccount(fromName common.Name, accountName common.Name, founderName common.Name, number uint64, pubkey common.PubKey, detail string) error
CreateAnyAccount include create sub account
func (*AccountManager) DeleteAccountByName ¶
func (am *AccountManager) DeleteAccountByName(accountName common.Name) error
DeleteAccountByName delete account
func (*AccountManager) EnoughAccountBalance ¶
func (*AccountManager) GetAccountBalanceByID ¶
func (am *AccountManager) GetAccountBalanceByID(accountName common.Name, assetID uint64, typeID uint64) (*big.Int, error)
GetAccountBalanceByID get account balance by ID
func (*AccountManager) GetAccountById ¶ added in v0.0.7
func (am *AccountManager) GetAccountById(id uint64) (*Account, error)
GetAccountById get account by account id
func (*AccountManager) GetAccountByName ¶
func (am *AccountManager) GetAccountByName(accountName common.Name) (*Account, error)
GetAccountByName get account by name
func (*AccountManager) GetAccountByTime ¶
GetAccountByTime get account by name and time
func (*AccountManager) GetAccountIDByName ¶ added in v0.0.7
func (am *AccountManager) GetAccountIDByName(accountName common.Name) (uint64, error)
GetAccountIDByName get account id by account name
func (*AccountManager) GetAccountLastChange ¶
func (am *AccountManager) GetAccountLastChange(accountName common.Name) (uint64, error)
GetAccountLastChange account balance last change time
func (*AccountManager) GetAllAssetbyAssetId ¶ added in v0.0.7
func (am *AccountManager) GetAllAssetbyAssetId(acct *Account, assetId uint64) (map[uint64]*big.Int, error)
GetAllAssetbyAssetId get accout asset and subAsset Info
func (*AccountManager) GetAllBalancebyAssetID ¶ added in v0.0.7
GetAllBalancebyAssetID get account balance, balance(asset) = asset + subAsset
func (*AccountManager) GetAssetAmountByTime ¶
GetAssetAmountByTime get asset amount by time
func (*AccountManager) GetAssetFounder ¶
func (am *AccountManager) GetAssetFounder(assetID uint64) (common.Name, error)
GetAssetFounder Get Asset Founder
func (*AccountManager) GetAssetInfoByID ¶
func (am *AccountManager) GetAssetInfoByID(assetID uint64) (*asset.AssetObject, error)
GetAssetInfoByID get asset info by assetID
func (*AccountManager) GetAssetInfoByName ¶
func (am *AccountManager) GetAssetInfoByName(assetName string) (*asset.AssetObject, error)
GetAssetInfoByName get asset info by asset name.
func (*AccountManager) GetAuthorVersion ¶ added in v0.0.7
GetAuthorVersion returns the account author version
func (*AccountManager) GetBalanceByTime ¶
func (am *AccountManager) GetBalanceByTime(accountName common.Name, assetID uint64, typeID uint64, time uint64) (*big.Int, error)
GetBalanceByTime get account balance by Time
func (*AccountManager) GetCode ¶
func (am *AccountManager) GetCode(accountName common.Name) ([]byte, error)
func (*AccountManager) GetCodeSize ¶
func (am *AccountManager) GetCodeSize(accountName common.Name) (uint64, error)
GetCodeSize get code size
func (*AccountManager) GetFounder ¶
GetFounder Get Account Founder
func (*AccountManager) GetNonce ¶
func (am *AccountManager) GetNonce(accountName common.Name) (uint64, error)
GetNonce get nonce
func (*AccountManager) GetSnapshotTime ¶
func (am *AccountManager) GetSnapshotTime(num uint64, time uint64) (uint64, error)
GetSnapshotTime get snapshot time num = 0 current snapshot time , 1 preview snapshot time , 2 next snapshot time
func (*AccountManager) IncAsset2Acct ¶
func (am *AccountManager) IncAsset2Acct(fromName common.Name, toName common.Name, assetID uint64, amount *big.Int) error
IncAsset2Acct increase asset and add amount to accout balance
func (*AccountManager) InitAccountCounter ¶ added in v0.0.7
func (am *AccountManager) InitAccountCounter()
InitAccountCounter init account manage counter
func (*AccountManager) IsValidSign ¶
IsValidSign
func (*AccountManager) IssueAnyAsset ¶ added in v0.0.7
func (am *AccountManager) IssueAnyAsset(fromName common.Name, asset IssueAsset, number uint64) (uint64, error)
func (*AccountManager) IssueAsset ¶
func (am *AccountManager) IssueAsset(asset IssueAsset, number uint64) (uint64, error)
IssueAsset issue asset
func (*AccountManager) Process ¶
func (am *AccountManager) Process(accountManagerContext *types.AccountManagerContext) ([]*types.InternalAction, error)
Process account action
func (*AccountManager) RecoverTx ¶
func (am *AccountManager) RecoverTx(signer types.Signer, tx *types.Transaction) error
RecoverTx Make sure the transaction is signed properly and validate account authorization.
func (*AccountManager) SetAccount ¶
func (am *AccountManager) SetAccount(acct *Account) error
SetAccount store account object to db
func (*AccountManager) SetNonce ¶
func (am *AccountManager) SetNonce(accountName common.Name, nonce uint64) error
SetNonce set nonce
func (*AccountManager) SubAccountBalanceByID ¶
func (am *AccountManager) SubAccountBalanceByID(accountName common.Name, assetID uint64, value *big.Int) error
SubAccountBalanceByID sub balance by assetID
func (*AccountManager) TransferAsset ¶
func (am *AccountManager) TransferAsset(fromAccount common.Name, toAccount common.Name, assetID uint64, value *big.Int) error
TransferAsset transfer asset
func (*AccountManager) UpdateAccount ¶
func (am *AccountManager) UpdateAccount(accountName common.Name, accountAction *UpdataAccountAction) error
UpdateAccount update the pubkey of the account
func (*AccountManager) UpdateAccountAuthor ¶ added in v0.0.7
func (am *AccountManager) UpdateAccountAuthor(accountName common.Name, acctAuth *AccountAuthorAction) error
func (*AccountManager) ValidOneSign ¶ added in v0.0.7
type AssetBalance ¶
AssetBalance asset and balance struct
type AuthorAction ¶ added in v0.0.7
type AuthorAction struct { ActionType AuthorActionType Author *common.Author }
type AuthorActionType ¶ added in v0.0.7
type AuthorActionType uint64
const ( AddAuthor AuthorActionType = iota UpdateAuthor DeleteAuthor )
type Config ¶ added in v0.0.7
type Config struct { AccountNameLevel uint64 `json:"accountNameLevel"` AccountNameLength uint64 `json:"accountNameLength"` SubAccountNameLength uint64 `json:"subAccountNameLength"` }
Config Account Level
func DefaultAccountNameConf ¶ added in v0.0.7
func DefaultAccountNameConf() *Config
DefaultAccountNameConf return account config
type CreateAccountAction ¶ added in v0.0.11
type IAccount ¶
type IAccount interface { //newAccount(accountName common.Name, pubkey common.PubKey) (*Account, error) GetName() common.Name //nonce GetNonce() uint64 SetNonce(nonce uint64) //code GetCode() ([]byte, error) SetCode(code []byte) (bool, error) GetCodeHash() (common.Hash, error) GetCodeSize() (uint64, error) // GetPubKey() common.PubKey SetPubKey(pubkey common.PubKey) //asset GetBalancesList() ([]*AssetBalance, error) GetAllAccountBalance() (map[uint64]*big.Int, error) AddBalanceByID(assetID uint64, value *big.Int) error SubBalanceByID(assetID uint64, value *big.Int) error EnoughAccountBalance(assetID uint64, value *big.Int) error // IsSuicided() bool SetSuicide() // IsDestroyed() SetDestroy() }
type IAccountManager ¶
type IAccountManager interface { //account AccountIsExist(accountName common.Name) (bool, error) AccountIsEmpty(accountName common.Name) (bool, error) CreateAccount(accountName common.Name, pubkey common.PubKey) error DeleteAccountByName(accountName common.Name) error GetAccountByName(accountName common.Name) (*Account, error) SetAccount(acct *Account) error //sign RecoverTx(signer types.Signer, tx *types.Transaction) error IsValidSign(accountName common.Name, aType types.ActionType, pub common.PubKey) error //asset IssueAsset(asset *asset.AssetObject) error IncreaseAsset(accountName common.Name, assetID uint64, amount *big.Int) error // CanTransfer(accountName common.Name, assetId uint64, value *big.Int) (bool, error) TransferAsset(fromAccount common.Name, toAccount common.Name, assetID uint64, value *big.Int) error IncAsset2Acct(fromName common.Name, toName common.Name, assetId uint64, amount *big.Int) error AddBalanceByName(accountName common.Name, assetID uint64, amount *big.Int) error Process(action *types.Action) error }
type IssueAsset ¶ added in v0.0.9
type IssueAsset struct { AssetName string `json:"assetName"` Symbol string `json:"symbol"` Amount *big.Int `json:"amount"` Decimals uint64 `json:"decimals"` Founder common.Name `json:"founder"` Owner common.Name `json:"owner"` UpperLimit *big.Int `json:"upperLimit"` Contract common.Name `json:"contract"` Description string `json:"description"` }
type SdbIf ¶
type SdbIf interface { Put(account string, key string, value []byte) Get(account string, key string) ([]byte, error) // GetSnapshot(accountName string, key string, time uint64) ([]byte, error) // GetSnapshotLast() (uint64, error) // GetSnapshotPrev(time uint64) (uint64, error) // Snapshot() int RevertToSnapshot(revid int) }
import