Documentation ¶
Index ¶
- Constants
- Variables
- func BuildExtraNFO(extra []byte) []byte
- func BuildMintNFO(collection string, token []byte, hash crypto.Hash) []byte
- func DecodeMixinExtra(memo string) *mixinExtraPack
- func EncodeMixinExtra(groupId, traceId, memo string) string
- func MsgpackMarshalPanic(val interface{}) []byte
- func MsgpackUnmarshal(data []byte, val interface{}) 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) BuildTransaction(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) 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)
- 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 )
Variables ¶
Functions ¶
func BuildExtraNFO ¶ added in v0.1.2
func BuildMintNFO ¶ added in v0.1.2
func DecodeMixinExtra ¶ added in v0.0.7
func DecodeMixinExtra(memo string) *mixinExtraPack
func EncodeMixinExtra ¶ added in v0.1.3
func MsgpackMarshalPanic ¶ added in v0.1.3
func MsgpackMarshalPanic(val interface{}) []byte
func MsgpackUnmarshal ¶ added in v0.1.3
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 ¶ added in v0.1.2
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 ¶ added in v0.1.2
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) GetMembers ¶
func (*Group) GetThreshold ¶
func (*Group) ListActiveNodes ¶
func (*Group) ListOutputsForAsset ¶ added in v0.2.0
func (*Group) RemoveNode ¶
func (*Group) SetOutputGrouper ¶ added in v0.0.6
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 ¶ added in v0.1.2
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 ¶ added in v0.1.2
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 ¶ added in v0.1.2
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) 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 ¶ added in v0.1.2
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 ¶ added in v0.1.2
func (o *UnifiedOutput) AsCollectible() *CollectibleOutput
func (*UnifiedOutput) AsMultisig ¶ added in v0.1.2
func (o *UnifiedOutput) AsMultisig() *Output
func (*UnifiedOutput) UniqueId ¶ added in v0.1.2
func (o *UnifiedOutput) UniqueId() string
Click to show internal directories.
Click to hide internal directories.