Documentation ¶
Index ¶
- func AddDirectoryEntry(getIndex func(*url.URL, ...interface{}) Value, directory *url.URL, ...) error
- func CreateSynthReceipt(transaction *protocol.Transaction, status *protocol.TransactionStatus) (*url.URL, *protocol.SyntheticReceipt)
- func NeedsReceipt(txt protocol.TransactionType) bool
- type AcmeFaucet
- type AddCredits
- type AddValidator
- type BurnTokens
- type ChainUpdate
- type ChainUpdates
- func (c *ChainUpdates) AddChainEntry(batch *database.Batch, account *url.URL, name string, typ protocol.ChainType, ...) error
- func (c *ChainUpdates) DidAddChainEntry(batch *database.Batch, u *url.URL, name string, typ protocol.ChainType, ...) error
- func (c *ChainUpdates) DidUpdateChain(update ChainUpdate)
- func (c *ChainUpdates) Merge(d *ChainUpdates)
- type CreateDataAccount
- type CreateIdentity
- type CreateKeyBook
- type CreateKeyPage
- type CreateToken
- type CreateTokenAccount
- type InternalSendTransactions
- type InternalTransactionsSent
- type InternalTransactionsSigned
- type IssueTokens
- type ProcessTransactionState
- type RemoveManager
- type RemoveValidator
- type SendTokens
- type StateManager
- func (m *StateManager) AddChainEntry(u *url.URL, name string, typ protocol.ChainType, entry []byte, ...) error
- func (c *StateManager) AddDirectoryEntry(directory *url.URL, u ...*url.URL) error
- func (m *StateManager) AddSyntheticTxn(txid []byte, synth [32]byte)
- func (m *StateManager) AddValidator(pubKey ed25519.PubKey)
- func (m *StateManager) Commit() (*ProcessTransactionState, error)
- func (m *StateManager) Create(record ...protocol.Account)
- func (m *StateManager) DisableValidator(pubKey ed25519.PubKey)
- func (m *StateManager) Discard()
- func (c *StateManager) GetHeight(u *url.URL) (uint64, error)
- func (c *StateManager) LoadTxn(txid [32]byte) (*protocol.Transaction, error)
- func (c *StateManager) LoadUrl(account *url.URL) (protocol.Account, error)
- func (c *StateManager) LoadUrlAs(account *url.URL, target interface{}) error
- func (c *StateManager) ReadChain(u *url.URL, name string) (*database.Chain, error)
- func (c *StateManager) RecordIndex(u *url.URL, key ...interface{}) *writeIndex
- func (m *StateManager) SignTransaction(txid []byte, signatures ...protocol.Signature)
- func (m *StateManager) Submit(url *url.URL, body protocol.TransactionBody)
- func (c *StateManager) TxnIndex(id []byte, key ...interface{}) *writeIndex
- func (m *StateManager) Update(record ...protocol.Account)
- func (m *StateManager) UpdateData(record protocol.Account, entryHash []byte, dataEntry *protocol.DataEntry)
- func (m *StateManager) UpdateSignator(record protocol.Account) error
- func (m *StateManager) UpdateStatus(txid []byte, status *protocol.TransactionStatus)
- type SyntheticAnchor
- type SyntheticBurnTokens
- type SyntheticCreateChain
- type SyntheticDepositCredits
- type SyntheticDepositTokens
- type SyntheticMirror
- type SyntheticReceipt
- type SyntheticWriteData
- type UpdateKeyPage
- type UpdateManager
- type UpdateValidatorKey
- type ValidatorUpdate
- type Value
- type WriteData
- type WriteDataTo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddDirectoryEntry ¶
func CreateSynthReceipt ¶ added in v0.5.1
func CreateSynthReceipt(transaction *protocol.Transaction, status *protocol.TransactionStatus) (*url.URL, *protocol.SyntheticReceipt)
CreateSynthReceipt creates a receipt used to return the status of synthetic transactions to its sender
func NeedsReceipt ¶ added in v0.5.1
func NeedsReceipt(txt protocol.TransactionType) bool
NeedsReceipt selects which synth txs need / don't a receipt
Types ¶
type AcmeFaucet ¶
type AcmeFaucet struct{}
func (AcmeFaucet) Type ¶
func (AcmeFaucet) Type() protocol.TransactionType
func (AcmeFaucet) Validate ¶
func (AcmeFaucet) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type AddCredits ¶
type AddCredits struct{}
func (AddCredits) Type ¶
func (AddCredits) Type() protocol.TransactionType
func (AddCredits) Validate ¶
func (AddCredits) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type AddValidator ¶ added in v0.5.1
type AddValidator struct{}
func (AddValidator) Type ¶ added in v0.5.1
func (AddValidator) Type() protocol.TransactionType
func (AddValidator) Validate ¶ added in v0.5.1
func (AddValidator) Validate(st *StateManager, env *protocol.Envelope) (protocol.TransactionResult, error)
type BurnTokens ¶
type BurnTokens struct{}
func (BurnTokens) Type ¶
func (BurnTokens) Type() protocol.TransactionType
func (BurnTokens) Validate ¶
func (BurnTokens) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type ChainUpdate ¶ added in v0.5.1
type ChainUpdate struct { Account *url.URL Name string Type protocol.ChainType Index uint64 SourceIndex uint64 SourceBlock uint64 Entry []byte }
ChainUpdate records an update to a chain of an account.
type ChainUpdates ¶ added in v0.5.1
type ChainUpdates struct { Entries []ChainUpdate // contains filtered or unexported fields }
func (*ChainUpdates) AddChainEntry ¶ added in v0.5.1
func (c *ChainUpdates) AddChainEntry(batch *database.Batch, account *url.URL, name string, typ protocol.ChainType, entry []byte, sourceIndex, sourceBlock uint64) error
AddChainEntry adds an entry to a chain and records the chain update in the block state.
func (*ChainUpdates) DidAddChainEntry ¶ added in v0.5.1
func (c *ChainUpdates) DidAddChainEntry(batch *database.Batch, u *url.URL, name string, typ protocol.ChainType, entry []byte, index, sourceIndex, sourceBlock uint64) error
DidAddChainEntry records a chain update in the block state.
func (*ChainUpdates) DidUpdateChain ¶ added in v0.5.1
func (c *ChainUpdates) DidUpdateChain(update ChainUpdate)
DidUpdateChain records a chain update.
func (*ChainUpdates) Merge ¶ added in v0.5.1
func (c *ChainUpdates) Merge(d *ChainUpdates)
type CreateDataAccount ¶
type CreateDataAccount struct{}
func (CreateDataAccount) Type ¶
func (CreateDataAccount) Type() protocol.TransactionType
func (CreateDataAccount) Validate ¶
func (CreateDataAccount) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type CreateIdentity ¶
type CreateIdentity struct{}
func (CreateIdentity) Type ¶
func (CreateIdentity) Type() protocol.TransactionType
func (CreateIdentity) Validate ¶
func (CreateIdentity) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type CreateKeyBook ¶
type CreateKeyBook struct{}
func (CreateKeyBook) Type ¶
func (CreateKeyBook) Type() protocol.TransactionType
func (CreateKeyBook) Validate ¶
func (CreateKeyBook) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type CreateKeyPage ¶
type CreateKeyPage struct{}
func (CreateKeyPage) Type ¶
func (CreateKeyPage) Type() protocol.TransactionType
func (CreateKeyPage) Validate ¶
func (CreateKeyPage) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type CreateToken ¶
type CreateToken struct{}
func (CreateToken) Type ¶
func (CreateToken) Type() protocol.TransactionType
func (CreateToken) Validate ¶
func (CreateToken) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type CreateTokenAccount ¶
type CreateTokenAccount struct{}
func (CreateTokenAccount) Type ¶
func (CreateTokenAccount) Type() protocol.TransactionType
func (CreateTokenAccount) Validate ¶
func (CreateTokenAccount) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type InternalSendTransactions ¶
type InternalSendTransactions struct{}
func (InternalSendTransactions) Type ¶
func (InternalSendTransactions) Type() protocol.TransactionType
func (InternalSendTransactions) Validate ¶
func (InternalSendTransactions) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type InternalTransactionsSent ¶
type InternalTransactionsSent struct{}
func (InternalTransactionsSent) Type ¶
func (InternalTransactionsSent) Type() protocol.TransactionType
func (InternalTransactionsSent) Validate ¶
func (InternalTransactionsSent) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type InternalTransactionsSigned ¶
type InternalTransactionsSigned struct{}
func (InternalTransactionsSigned) Type ¶
func (InternalTransactionsSigned) Type() protocol.TransactionType
func (InternalTransactionsSigned) Validate ¶
func (InternalTransactionsSigned) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type IssueTokens ¶
type IssueTokens struct{}
func (IssueTokens) Type ¶
func (IssueTokens) Type() protocol.TransactionType
func (IssueTokens) Validate ¶
func (IssueTokens) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type ProcessTransactionState ¶ added in v0.5.1
type ProcessTransactionState struct { ValidatorsUpdates []ValidatorUpdate ProducedTxns []*protocol.Transaction ChainUpdates ChainUpdates }
func (*ProcessTransactionState) DidProduceTxn ¶ added in v0.5.1
func (s *ProcessTransactionState) DidProduceTxn(url *url.URL, body protocol.TransactionBody)
DidProduceTxn records a produced transaction.
func (*ProcessTransactionState) Merge ¶ added in v0.5.1
func (s *ProcessTransactionState) Merge(r *ProcessTransactionState)
type RemoveManager ¶
type RemoveManager struct{}
func (RemoveManager) Type ¶
func (RemoveManager) Type() protocol.TransactionType
func (RemoveManager) Validate ¶
func (RemoveManager) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type RemoveValidator ¶ added in v0.5.1
type RemoveValidator struct{}
func (RemoveValidator) Type ¶ added in v0.5.1
func (RemoveValidator) Type() protocol.TransactionType
func (RemoveValidator) Validate ¶ added in v0.5.1
func (RemoveValidator) Validate(st *StateManager, env *protocol.Envelope) (protocol.TransactionResult, error)
type SendTokens ¶
type SendTokens struct{}
func (SendTokens) Type ¶
func (SendTokens) Type() protocol.TransactionType
func (SendTokens) Validate ¶
func (SendTokens) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type StateManager ¶
type StateManager struct { Origin protocol.Account OriginUrl *url.URL Signator protocol.SignerAccount SignatorUrl *url.URL // contains filtered or unexported fields }
func NewStateManager ¶
func NewStateManager(batch *database.Batch, nodeUrl, signerUrl *url.URL, signer protocol.SignerAccount, principal protocol.Account, transaction *protocol.Transaction, logger log.Logger) *StateManager
NewStateManager creates a new state manager and loads the transaction's origin. If the origin is not found, NewStateManager returns a valid state manager along with a not-found error.
func (*StateManager) AddChainEntry ¶
func (*StateManager) AddDirectoryEntry ¶
func (*StateManager) AddSyntheticTxn ¶ added in v0.5.1
func (*StateManager) AddValidator ¶
func (m *StateManager) AddValidator(pubKey ed25519.PubKey)
func (*StateManager) Commit ¶
func (m *StateManager) Commit() (*ProcessTransactionState, error)
commit writes pending records to the database.
func (*StateManager) Create ¶
Create queues a record for a synthetic chain create transaction. Will panic if called by a synthetic transaction. Will panic if the record is a transaction.
func (*StateManager) DisableValidator ¶ added in v0.5.1
func (m *StateManager) DisableValidator(pubKey ed25519.PubKey)
func (*StateManager) Discard ¶ added in v0.5.1
func (m *StateManager) Discard()
func (*StateManager) LoadTxn ¶
func (c *StateManager) LoadTxn(txid [32]byte) (*protocol.Transaction, error)
LoadTxn loads and unmarshals a saved transaction
func (*StateManager) LoadUrlAs ¶
LoadUrlAs loads a chain by URL and unmarshals it as a specific type.
func (*StateManager) RecordIndex ¶
func (*StateManager) SignTransaction ¶
func (*StateManager) Submit ¶
func (m *StateManager) Submit(url *url.URL, body protocol.TransactionBody)
Submit queues a synthetic transaction for submission.
func (*StateManager) TxnIndex ¶
func (c *StateManager) TxnIndex(id []byte, key ...interface{}) *writeIndex
func (*StateManager) Update ¶
Update queues a record for storage in the database. The queued update will fail if the record does not already exist, unless it is created by a synthetic transaction, or the record is a transaction.
func (*StateManager) UpdateData ¶
func (m *StateManager) UpdateData(record protocol.Account, entryHash []byte, dataEntry *protocol.DataEntry)
UpdateData will cache a data associated with a DataAccount chain. the cache data will not be stored directly in the state but can be used upstream for storing a chain in the state database.
func (*StateManager) UpdateSignator ¶
func (*StateManager) UpdateStatus ¶ added in v0.5.1
func (m *StateManager) UpdateStatus(txid []byte, status *protocol.TransactionStatus)
type SyntheticAnchor ¶
func (SyntheticAnchor) Type ¶
func (SyntheticAnchor) Type() protocol.TransactionType
func (SyntheticAnchor) Validate ¶
func (x SyntheticAnchor) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticBurnTokens ¶
type SyntheticBurnTokens struct{}
func (SyntheticBurnTokens) Type ¶
func (SyntheticBurnTokens) Type() protocol.TransactionType
func (SyntheticBurnTokens) Validate ¶
func (SyntheticBurnTokens) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticCreateChain ¶
type SyntheticCreateChain struct{}
func (SyntheticCreateChain) Type ¶
func (SyntheticCreateChain) Type() protocol.TransactionType
func (SyntheticCreateChain) Validate ¶
func (SyntheticCreateChain) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticDepositCredits ¶
type SyntheticDepositCredits struct{}
func (SyntheticDepositCredits) Type ¶
func (SyntheticDepositCredits) Type() protocol.TransactionType
func (SyntheticDepositCredits) Validate ¶
func (SyntheticDepositCredits) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticDepositTokens ¶
type SyntheticDepositTokens struct{}
func (SyntheticDepositTokens) Type ¶
func (SyntheticDepositTokens) Type() protocol.TransactionType
func (SyntheticDepositTokens) Validate ¶
func (SyntheticDepositTokens) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticMirror ¶
type SyntheticMirror struct{}
func (SyntheticMirror) Type ¶
func (SyntheticMirror) Type() protocol.TransactionType
func (SyntheticMirror) Validate ¶
func (SyntheticMirror) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticReceipt ¶ added in v0.5.1
type SyntheticReceipt struct{}
func (SyntheticReceipt) Type ¶ added in v0.5.1
func (SyntheticReceipt) Type() protocol.TransactionType
func (SyntheticReceipt) Validate ¶ added in v0.5.1
func (SyntheticReceipt) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type SyntheticWriteData ¶
type SyntheticWriteData struct{}
func (SyntheticWriteData) Type ¶
func (SyntheticWriteData) Type() protocol.TransactionType
func (SyntheticWriteData) Validate ¶
func (SyntheticWriteData) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type UpdateKeyPage ¶
type UpdateKeyPage struct{}
func (UpdateKeyPage) Type ¶
func (UpdateKeyPage) Type() protocol.TransactionType
func (UpdateKeyPage) Validate ¶
func (UpdateKeyPage) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type UpdateManager ¶
type UpdateManager struct{}
func (UpdateManager) Type ¶
func (UpdateManager) Type() protocol.TransactionType
func (UpdateManager) Validate ¶
func (UpdateManager) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type UpdateValidatorKey ¶ added in v0.5.1
type UpdateValidatorKey struct{}
func (UpdateValidatorKey) Type ¶ added in v0.5.1
func (UpdateValidatorKey) Type() protocol.TransactionType
func (UpdateValidatorKey) Validate ¶ added in v0.5.1
func (UpdateValidatorKey) Validate(st *StateManager, env *protocol.Envelope) (protocol.TransactionResult, error)
type ValidatorUpdate ¶ added in v0.5.1
type WriteData ¶
type WriteData struct{}
func (WriteData) Type ¶
func (WriteData) Type() protocol.TransactionType
func (WriteData) Validate ¶
func (WriteData) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
type WriteDataTo ¶
type WriteDataTo struct{}
func (WriteDataTo) Type ¶
func (WriteDataTo) Type() protocol.TransactionType
func (WriteDataTo) Validate ¶
func (WriteDataTo) Validate(st *StateManager, tx *protocol.Envelope) (protocol.TransactionResult, error)
Source Files ¶
- acme_faucet.go
- add_credits.go
- burn_tokens.go
- create_data_account.go
- create_identity.go
- create_key_book.go
- create_key_page.go
- create_token.go
- create_token_account.go
- internal_send_transactions.go
- internal_transactions_sent.go
- internal_transactions_signed.go
- issue_tokens.go
- remove_manager.go
- send_tokens.go
- state.go
- state_cache.go
- state_operation.go
- state_state.go
- synthetic_anchor.go
- synthetic_burn_tokens.go
- synthetic_create_chain.go
- synthetic_deposit_credits.go
- synthetic_deposit_tokens.go
- synthetic_mirror.go
- synthetic_tx_receipt.go
- synthetic_write_data.go
- update_key_page.go
- update_manager.go
- validators.go
- write_data.go
- write_data_to.go