Versions in this module Expand all Collapse all v1 v1.4.2 May 30, 2023 v1.4.0 May 30, 2023 Changes in this version + var ErrDuplicatedTx = errors.New("Duplicated transaction") + var ErrEarlyTime = utils.WithBan(errors.New("Early transaction time")) + var ErrEmptyKey = utils.WithBan(errors.New("KeyID is empty")) + var ErrExpiredTime = errors.New("Transaction processing time is expired") + var ErrLimitSkip = errors.New(`skip tx`) + var ErrLimitStop = errors.New(`stop generating block`) + var ErrNetworkStopping = errors.New("network is stopping") + var ErrNotComeTime = errors.New("Transaction processing time has not come") + func BadTxForBan(keyID int64) + func BannedTill(keyID int64) string + func CheckLogTx(txHash []byte, logger *log.Entry) error + func CleanCache() + func CreateContract(contractName string, keyID int64, params map[string]any, privateKey []byte) error + func CreateDelayTransactionHighRate(data, hash []byte, keyID, highRate int64) *sqldb.Transaction + func CreateTransaction(data, hash []byte, keyID, tnow int64) error + func DeleteQueueTx(dbTx *sqldb.DbTransaction, hash []byte) error + func IsKeyBanned(keyID int64) bool + func MarkTransactionBad(hash []byte, errText string) error + func NewInternalTransaction(smartTx types.SmartTransaction, privateKey []byte) (data, hash []byte, err error) + func NewTransactionInProc(smartTx types.SmartTransaction, privateKey []byte) (data, hash []byte, err error) + func ProcessQueueTransactionBatches(dbTx *sqldb.DbTransaction, qs []*sqldb.QueueTx) error + func ProcessTransactionsAttempt(dbTx *sqldb.DbTransaction) error + func ProcessTransactionsQueue(dbTx *sqldb.DbTransaction) error + type DeliverProvider interface + FlushVM func() + SysTableColByteaWorker func(*sqldb.DbTransaction) error + SysUpdateWorker func(*sqldb.DbTransaction) error + type FirstBlockParser struct + Data *types.FirstBlock + DbTransaction *sqldb.DbTransaction + Logger *log.Entry + Payload []byte + Timestamp int64 + TxHash []byte + func (f *FirstBlockParser) Action(in *InToCxt, out *OutCtx) (err error) + func (f *FirstBlockParser) FlushVM() + func (f *FirstBlockParser) Init(in *InToCxt) error + func (f *FirstBlockParser) SysTableColByteaWorker(dbTx *sqldb.DbTransaction) error + func (f *FirstBlockParser) SysUpdateWorker(dbTx *sqldb.DbTransaction) error + func (f *FirstBlockParser) TxRollback() error + func (f *FirstBlockParser) Unmarshal(buffer *bytes.Buffer) error + func (f *FirstBlockParser) Validate() error + func (s *FirstBlockParser) BinMarshal(data *types.FirstBlock) ([]byte, error) + type InToCxt struct + BlockHeader *types.BlockHeader + DbTransaction *sqldb.DbTransaction + EcoParams []sqldb.EcoParam + GenBlock bool + Notifications types.Notifications + OutputsMap map[sqldb.KeyUTXO][]sqldb.SpentInfo + PreBlockHeader *types.BlockHeader + PrevSysPar map[string]string + Rand *rand.Rand + SqlDbSavePoint string + TxCheckLimits *Limits + type LimitMode int + func GetLetGenBlock() LimitMode + func GetLetParsing() LimitMode + func GetLetPreprocess() LimitMode + type Limiter interface + type Limits struct + Limiters []Limiter + Mode LimitMode + func NewLimits(b LimitMode) (limits *Limits) + func (limits *Limits) CheckLimit(t TransactionCaller) error + type OutCtx struct + RollBackTx []*types.RollbackTx + SysUpdate bool + TxInputsMap map[sqldb.KeyUTXO][]sqldb.SpentInfo + TxOutputsMap map[sqldb.KeyUTXO][]sqldb.SpentInfo + TxResult *pbgo.TxResult + func (tr *OutCtx) Apply(opts ...OutCtxOption) + type OutCtxOption func(b *OutCtx) + func WithOutCtxRollBackTx(ret []*types.RollbackTx) OutCtxOption + func WithOutCtxSysUpdate(ret bool) OutCtxOption + func WithOutCtxTxInputs(txInputsMap map[sqldb.KeyUTXO][]sqldb.SpentInfo) OutCtxOption + func WithOutCtxTxOutputs(txOutputsMap map[sqldb.KeyUTXO][]sqldb.SpentInfo) OutCtxOption + func WithOutCtxTxResult(ret *pbgo.TxResult) OutCtxOption + type SmartTransactionParser struct + func (s *SmartTransactionParser) Action(in *InToCxt, out *OutCtx) (err error) + func (s *SmartTransactionParser) BinMarshalWithPrivate(smartTx *types.SmartTransaction, privateKey []byte, internal bool) ([]byte, error) + func (s *SmartTransactionParser) FlushVM() + func (s *SmartTransactionParser) Init(t *InToCxt) error + func (s *SmartTransactionParser) Marshal() ([]byte, error) + func (s *SmartTransactionParser) SysTableColByteaWorker(dbTx *sqldb.DbTransaction) error + func (s *SmartTransactionParser) SysUpdateWorker(dbTx *sqldb.DbTransaction) error + func (s *SmartTransactionParser) TxRollback() error + func (s *SmartTransactionParser) Unmarshal(buffer *bytes.Buffer, fill bool) error + func (s *SmartTransactionParser) Validate() error + type StopNetworkParser struct + Cert *x509.Cert + Data *types.StopNetwork + Logger *log.Entry + Payload []byte + Timestamp int64 + TxHash []byte + func (s *StopNetworkParser) Action(in *InToCxt, out *OutCtx) (err error) + func (s *StopNetworkParser) BinMarshal(data *types.StopNetwork) ([]byte, error) + func (s *StopNetworkParser) FlushVM() + func (s *StopNetworkParser) Init(in *InToCxt) error + func (s *StopNetworkParser) SysTableColByteaWorker(dbTx *sqldb.DbTransaction) error + func (s *StopNetworkParser) SysUpdateWorker(dbTx *sqldb.DbTransaction) error + func (s *StopNetworkParser) TxRollback() error + func (s *StopNetworkParser) Unmarshal(buffer *bytes.Buffer) error + func (s *StopNetworkParser) Validate() error + type Transaction struct + FullData []byte + Inner TransactionCaller + func UnmarshallTransaction(buffer *bytes.Buffer, fill bool) (*Transaction, error) + func (rtx *Transaction) SetRawTx() *sqldb.RawTx + func (rtx *Transaction) Unmarshall(buffer *bytes.Buffer, fill bool) error + func (t *Transaction) Check(checkTime int64) error + func (t *Transaction) Expedite() decimal.Decimal + func (t *Transaction) GetLogger() *log.Entry + func (t *Transaction) Hash() []byte + func (t *Transaction) IsSmartContract() bool + func (t *Transaction) KeyID() int64 + func (t *Transaction) Payload() []byte + func (t *Transaction) Play() error + func (t *Transaction) SmartContract() *SmartTransactionParser + func (t *Transaction) Timestamp() int64 + func (t *Transaction) Type() byte + func (tr *Transaction) Apply(opts ...TransactionOption) error + func (tr *Transaction) WithOption(notifications types.Notifications, genBlock bool, ...) error + type TransactionCaller interface + Action func(*InToCxt, *OutCtx) error + Init func(*InToCxt) error + TxRollback func() error + Validate func() error + type TransactionOption func(b *Transaction) error + type TxOutCtx struct + Flush bool + FlushRollback []*smart.FlushInfo + SysTableColBytea bool + SysUpdate bool + VM *script.VM + VM2 *script.VM