Documentation
¶
Index ¶
- Constants
- Variables
- func BuildExtraNFO(extra []byte) []byte
- func BuildMintNFO(collection string, token []byte, hash crypto.Hash) []byte
- func CompressMsgpackMarshalPanic(val any) []byte
- func DecodeMixinExtra(memo string) *mixinExtraPack
- func DecompressMsgpackUnmarshal(data []byte, val any) error
- func EncodeMixinExtra(groupId, traceId, memo string) string
- func MsgpackMarshalPanic(val any) []byte
- func MsgpackUnmarshal(data []byte, val any) error
- type Action
- type Clock
- type CollectibleOutput
- type CollectibleTransaction
- type Configuration
- type Group
- func (grp *Group) AddNode(id string, threshold int, timestamp time.Time) error
- func (grp *Group) AddWorker(wkr Worker)
- func (grp *Group) BuildCollectibleMintTransaction(ctx context.Context, receivers []string, threshold int, nfo []byte) error
- func (grp *Group) BuildCollectibleTransferTransaction(ctx context.Context, receivers []string, threshold int, memo string, ...) error
- func (grp *Group) BuildStorageTransaction(ctx context.Context, data []byte, groupId string) (*Transaction, error)
- func (grp *Group) BuildTransaction(ctx context.Context, assetId string, receivers []string, threshold int, ...) error
- func (grp *Group) BuildTransactionWithReferences(ctx context.Context, assetId string, receivers []string, threshold int, ...) error
- func (grp *Group) GenesisId() string
- func (grp *Group) GetMembers() []string
- func (grp *Group) GetThreshold() int
- func (grp *Group) ListActiveNodes() ([]string, int, time.Time, error)
- func (grp *Group) ListOutputsForAsset(groupId, assetId, state string, limit int) ([]*Output, error)
- func (grp *Group) ListOutputsForTransaction(traceId string) ([]*Output, error)
- func (grp *Group) RemoveNode(id string, threshold int, timestamp time.Time) error
- func (grp *Group) Run(ctx context.Context)
- func (grp *Group) SetOutputGrouper(per func(out *Output) string)
- func (grp *Group) Synced() (bool, error)
- type Iteration
- type NFOMemo
- type Output
- type Store
- type Transaction
- type UnifiedOutput
- type Worker
Constants ¶
View Source
const ( ActionStateInitial = 10 ActionStateDone = 11 )
View Source
const ( CollectibleMetaTokenId = "2f8aa18a-3cb8-31d5-95bc-5a4f2e25dc2f" CollectibleMixinAssetId = "1700941284a95f31b25ec8c546008f208f88eee4419ccdcdbe6e3195e60128ca" )
View Source
const ( IterationActionAdd = 11 IterationActionRemove = 12 )
View Source
const ( NMPrefix = "NFO" NMVersion = 0x00 )
View Source
const ( OutputStateUnspent = 10 OutputStateSigned = 11 OutputStateSpent = 12 OutputTypeMultisig = "multisig_utxo" OutputTypeCollectible = "non_fungible_output" )
View Source
const ( TransactionStateInitial = 10 TransactionStateSigning = 11 TransactionStateSigned = 12 TransactionStateSnapshot = 13 OutputsBatchSize = 36 CompactionTransactionMemo = "COMPACTION" StorageAssetId = "c94ac88f-4671-3976-b60a-09064f1811e8" StorageReceiverId = "773e5e77-4107-45c2-b648-8fc722ed77f5" )
Variables ¶
View Source
var ( CompressionVersionZero = []byte{0, 0, 0, 0} CompressionVersionLatest = CompressionVersionZero )
Functions ¶
func BuildExtraNFO ¶
func CompressMsgpackMarshalPanic ¶ added in v0.5.0
func DecodeMixinExtra ¶
func DecodeMixinExtra(memo string) *mixinExtraPack
func DecompressMsgpackUnmarshal ¶ added in v0.5.0
func EncodeMixinExtra ¶
func MsgpackMarshalPanic ¶
func MsgpackUnmarshal ¶
Types ¶
type CollectibleOutput ¶
type CollectibleOutput struct { Type string UserId string OutputId string TokenId string TransactionHash crypto.Hash OutputIndex int Amount decimal.Decimal SendersThreshold int64 Senders []string ReceiversThreshold int64 Receivers []string Memo string CreatedAt time.Time UpdatedAt time.Time SignedBy string SignedTx string State int }
func (*CollectibleOutput) StateName ¶
func (out *CollectibleOutput) StateName() string
func (*CollectibleOutput) Unified ¶
func (o *CollectibleOutput) Unified() *UnifiedOutput
type CollectibleTransaction ¶
type Configuration ¶
type Configuration struct { App struct { ClientId string `toml:"client-id"` SessionId string `toml:"session-id"` PrivateKey string `toml:"private-key"` PinToken string `toml:"pin-token"` PIN string `toml:"pin"` } `toml:"app"` Genesis struct { Members []string `toml:"members"` Threshold int `toml:"threshold"` Timestamp int64 `toml:"timestamp"` } `toml:"genesis"` GroupSize int `toml:"group-size"` }
func Setup ¶
func Setup(path string) (*Configuration, error)
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
func BuildGroup ¶
func (*Group) BuildCollectibleMintTransaction ¶
func (*Group) BuildCollectibleTransferTransaction ¶
func (*Group) BuildStorageTransaction ¶ added in v0.5.0
func (*Group) BuildTransaction ¶
func (grp *Group) BuildTransaction(ctx context.Context, assetId string, receivers []string, threshold int, amount, memo string, traceId, groupId string) error
the app should decide a unique trace id so that the MTG will not double spend
func (*Group) BuildTransactionWithReferences ¶ added in v0.5.0
func (*Group) GetMembers ¶
func (*Group) GetThreshold ¶
func (*Group) ListActiveNodes ¶
func (*Group) ListOutputsForAsset ¶
func (*Group) ListOutputsForTransaction ¶ added in v0.4.1
func (*Group) RemoveNode ¶
func (*Group) SetOutputGrouper ¶
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 NFOMemo ¶
type NFOMemo struct { Prefix string Version byte Mask uint64 Chain uuid.UUID // 16 bytes Class []byte // 64 bytes contract address Collection uuid.UUID // 16 bytes Token []byte // 64 bytes hash of content Extra []byte }
func DecodeNFOMemo ¶
type Output ¶
type Output struct { GroupId string UserID string UTXOID string AssetID string TransactionHash crypto.Hash OutputIndex int Sender string Amount decimal.Decimal Threshold uint8 Members []string Memo string State int CreatedAt time.Time UpdatedAt time.Time SignedBy string SignedTx string }
func (*Output) Unified ¶
func (o *Output) Unified() *UnifiedOutput
type Store ¶
type Store interface { WriteProperty(key, val []byte) error ReadProperty(key []byte) ([]byte, error) WriteIteration(ir *Iteration) error ListIterations() ([]*Iteration, error) WriteOutput(utxo *Output, traceId string) error WriteOutputs(utxos []*Output, traceId string) error ListOutputsForTransaction(traceId string) ([]*Output, error) ListOutputsForAsset(groupId string, state, assetId string, limit int) ([]*Output, error) WriteAction(act *Action) error ListActions(limit int) ([]*UnifiedOutput, error) WriteTransaction(tx *Transaction) error ReadTransactionByTraceId(traceId string) (*Transaction, error) ReadTransactionByHash(hash crypto.Hash) (*Transaction, error) ListTransactions(state int, limit int) ([]*Transaction, error) DeleteTransaction(tx *Transaction) error WriteCollectibleOutput(utxo *CollectibleOutput, traceId string) error WriteCollectibleOutputs(utxos []*CollectibleOutput, traceId string) error ListCollectibleOutputsForTransaction(traceId string) ([]*CollectibleOutput, error) ListCollectibleOutputsForToken(state, tokenId string, limit int) ([]*CollectibleOutput, error) WriteCollectibleTransaction(traceId string, tx *CollectibleTransaction) error ReadCollectibleTransaction(traceId string) (*CollectibleTransaction, error) ReadCollectibleTransactionByHash(hash crypto.Hash) (*CollectibleTransaction, error) ListCollectibleTransactions(state int, limit int) ([]*CollectibleTransaction, error) }
type Transaction ¶
type UnifiedOutput ¶
type UnifiedOutput struct { Type string `json:"type"` UserId string `json:"user_id"` TransactionHash crypto.Hash `json:"transaction_hash"` OutputIndex int `json:"output_index"` Amount decimal.Decimal `json:"amount"` Memo string `json:"memo"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` SignedBy string `json:"signed_by"` SignedTx string `json:"signed_tx"` State string `json:"state"` UnifiedOutputId string `json:"output_id"` UnifiedTokenId string `json:"token_id"` UnifiedSendersThreshold int64 `json:"senders_threshold"` UnifiedSenders []string `json:"senders"` UnifiedReceiversThreshold int64 `json:"receivers_threshold"` UnifiedReceivers []string `json:"receivers"` UnifiedUTXOID string `json:"utxo_id"` UnifiedAssetId string `json:"asset_id"` UnifiedThreshold int64 `json:"threshold"` UnifiedMembers []string `json:"members"` UnifiedSender string `json:"sender"` }
func (*UnifiedOutput) AsCollectible ¶
func (o *UnifiedOutput) AsCollectible() *CollectibleOutput
func (*UnifiedOutput) AsMultisig ¶
func (o *UnifiedOutput) AsMultisig() *Output
func (*UnifiedOutput) UniqueId ¶
func (o *UnifiedOutput) UniqueId() string
Click to show internal directories.
Click to hide internal directories.