Documentation ¶
Index ¶
- Constants
- Variables
- func AuthorizeToken(ctx context.Context, clientID, clientSecret string, code string, ...) (string, string, error)
- func DecodeMixinNetResponse(resp *resty.Response) ([]byte, error)
- func DecodeResponse(resp *resty.Response) ([]byte, error)
- func GenerateEd25519Key() ed25519.PrivateKey
- func GetClient() *http.Client
- func HashMembers(ids []string) string
- func IsErrorCodes(err error, codes ...int) bool
- func MixinNetClientFromContext(ctx context.Context) *resty.Client
- func RandomMixinNetHost() string
- func RandomPin() string
- func RandomTraceID() string
- func Request(ctx context.Context) *resty.Request
- func RequestIdFromContext(ctx context.Context) string
- func SignRaw(method, uri string, body []byte) string
- func SignRequest(r *http.Request) string
- func SignResponse(r *resty.Response) string
- func UniqueConversationID(userID, recipientID string) string
- func UnmarshalMixinNetResponse(resp *resty.Response, v interface{}) error
- func UnmarshalResponse(resp *resty.Response, v interface{}) (err error)
- func UploadAttachment(ctx context.Context, attachment *Attachment, file []byte) error
- func UploadAttachmentTo(ctx context.Context, uploadURL string, file []byte) error
- func UseApiHost(host string)
- func UseBlazeHost(host string)
- func UseMixinNetHosts(hosts []string)
- func ValidatePinPattern(pin string) error
- func VerifyTransaction(ctx context.Context, addr *MixinnetAddress, txHash Hash) (bool, error)
- func WithMixinNetHost(ctx context.Context, host string) context.Context
- func WithRequestID(ctx context.Context, requestID string) context.Context
- func WithSigner(ctx context.Context, s Signer) context.Context
- func WithVerifier(ctx context.Context, v Verifier) context.Context
- func WrapErrWithRequestID(err error, id string) error
- type AcknowledgementRequest
- type Address
- type App
- type AppButtonGroupMessage
- type AppButtonMessage
- type AppCardMessage
- type Asset
- type Attachment
- type AudioMessage
- type BlazeListenFunc
- type BlazeListener
- type BlazeMessage
- type Client
- func (c *Client) AddParticipants(ctx context.Context, conversationID string, users ...string) (*Conversation, error)
- func (c *Client) AdminParticipants(ctx context.Context, conversationID string, users ...string) (*Conversation, error)
- func (c *Client) BatchReadGhostKeys(ctx context.Context, inputs []*GhostInput) ([]*GhostKeys, error)
- func (c *Client) CancelMultisig(ctx context.Context, reqID string) error
- func (c *Client) CreateAddress(ctx context.Context, input CreateAddressInput, pin string) (*Address, error)
- func (c *Client) CreateAttachment(ctx context.Context) (*Attachment, error)
- func (c *Client) CreateContactConversation(ctx context.Context, userID string) (*Conversation, error)
- func (c *Client) CreateConversation(ctx context.Context, input *CreateConversationInput) (*Conversation, error)
- func (c *Client) CreateGroupConversation(ctx context.Context, conversationID, name string, participants []*Participant) (*Conversation, error)
- func (c *Client) CreateMultisig(ctx context.Context, action, raw string) (*MultisigRequest, error)
- func (c *Client) CreateUser(ctx context.Context, key crypto.Signer, fullname string) (*User, *Keystore, error)
- func (c *Client) DeleteAddress(ctx context.Context, addressID, pin string) error
- func (c *Client) FavoriteApp(ctx context.Context, appID string) (*FavoriteApp, error)
- func (c *Client) Get(ctx context.Context, uri string, params map[string]string, resp interface{}) error
- func (c *Client) LoopBlaze(ctx context.Context, listener BlazeListener) error
- func (c *Client) MakeMultisigTransaction(ctx context.Context, input *TransactionInput) (*Transaction, error)
- func (c *Client) ManageConversation(ctx context.Context, conversationID, action string, ...) (*Conversation, error)
- func (c *Client) ModifyPin(ctx context.Context, pin, newPin string) error
- func (c *Client) ModifyProfile(ctx context.Context, fullname, avatarBase64 string) (*User, error)
- func (c *Client) Post(ctx context.Context, uri string, body interface{}, resp interface{}) error
- func (c *Client) ReadAddress(ctx context.Context, addressID string) (*Address, error)
- func (c *Client) ReadAddresses(ctx context.Context, assetID string) ([]*Address, error)
- func (c *Client) ReadApp(ctx context.Context, appID string) (*App, error)
- func (c *Client) ReadAsset(ctx context.Context, assetID string) (*Asset, error)
- func (c *Client) ReadAssetFee(ctx context.Context, assetID string) (decimal.Decimal, error)
- func (c *Client) ReadAssets(ctx context.Context) ([]*Asset, error)
- func (c *Client) ReadConversation(ctx context.Context, conversationID string) (*Conversation, error)
- func (c *Client) ReadExchangeRates(ctx context.Context) ([]ExchangeRate, error)
- func (c *Client) ReadFavoriteApps(ctx context.Context, userID string) ([]*FavoriteApp, error)
- func (c *Client) ReadFriends(ctx context.Context) ([]*User, error)
- func (c *Client) ReadGhostKeys(ctx context.Context, receivers []string, index int) (*GhostKeys, error)
- func (c *Client) ReadMultisigOutputs(ctx context.Context, members []string, threshold uint8, offset time.Time, ...) ([]*MultisigUTXO, error)
- func (c *Client) ReadMultisigs(ctx context.Context, offset time.Time, limit int) ([]*MultisigUTXO, error)
- func (c *Client) ReadNetworkSnapshot(ctx context.Context, snapshotID string) (*Snapshot, error)
- func (c *Client) ReadNetworkSnapshots(ctx context.Context, assetID string, offset time.Time, order string, limit int) ([]*Snapshot, error)
- func (c *Client) ReadSnapshot(ctx context.Context, snapshotID string) (*Snapshot, error)
- func (c *Client) ReadSnapshots(ctx context.Context, assetID string, offset time.Time, order string, limit int) ([]*Snapshot, error)
- func (c *Client) ReadTransfer(ctx context.Context, traceID string) (*Snapshot, error)
- func (c *Client) ReadTurnServers(ctx context.Context) ([]*Turn, error)
- func (c *Client) ReadUser(ctx context.Context, userIdOrIdentityNumber string) (*User, error)
- func (c *Client) ReadUsers(ctx context.Context, ids ...string) ([]*User, error)
- func (c *Client) RemoveParticipants(ctx context.Context, conversationID string, users ...string) (*Conversation, error)
- func (c *Client) Request(ctx context.Context) *resty.Request
- func (c *Client) RotateConversation(ctx context.Context, conversationID string) (*Conversation, error)
- func (c *Client) SearchUser(ctx context.Context, identityNumber string) (*User, error)
- func (c *Client) SendAcknowledgement(ctx context.Context, request *AcknowledgementRequest) error
- func (c *Client) SendAcknowledgements(ctx context.Context, requests []*AcknowledgementRequest) error
- func (c *Client) SendMessage(ctx context.Context, message *MessageRequest) error
- func (c *Client) SendMessages(ctx context.Context, messages []*MessageRequest) error
- func (c *Client) SendRawMessages(ctx context.Context, messages []json.RawMessage) error
- func (c *Client) ShowAttachment(ctx context.Context, id string) (*Attachment, error)
- func (c *Client) SignMultisig(ctx context.Context, reqID, pin string) (*MultisigRequest, error)
- func (c *Client) Transaction(ctx context.Context, in *TransferInput, pin string) (*RawTransaction, error)
- func (c *Client) Transfer(ctx context.Context, input *TransferInput, pin string) (*Snapshot, error)
- func (c *Client) UnlockMultisig(ctx context.Context, reqID, pin string) error
- func (c *Client) UpdateApp(ctx context.Context, appID string, req UpdateAppRequest) (*App, error)
- func (c *Client) UserMe(ctx context.Context) (*User, error)
- func (c *Client) VerifyPayment(ctx context.Context, input TransferInput) (*Payment, error)
- func (c *Client) VerifyPin(ctx context.Context, pin string) error
- func (c *Client) Withdraw(ctx context.Context, input WithdrawInput, pin string) (*Snapshot, error)
- type ContactMessage
- type Conversation
- type CreateAddressInput
- type CreateConversationInput
- type DataMessage
- type DepositData
- type EdDSASigningMethod
- type Error
- type ExchangeRate
- type ExternalTransaction
- type FavoriteApp
- type GhostInput
- type GhostKeys
- type Hash
- type ImageMessage
- type Input
- type Integer
- type Key
- func DeriveGhostPrivateKey(R, a, b *Key, outputIndex int) *Key
- func DeriveGhostPublicKey(r, A, B *Key, outputIndex int) *Key
- func KeyFromString(s string) (Key, error)
- func KeyMultPubPriv(pub, priv *Key) *Key
- func NewKey(randReader io.Reader) Key
- func NewKeyFromSeed(seed []byte) Key
- func ViewGhostOutputKey(P, a, R *Key, outputIndex int) *Key
- func (k Key) CheckKey() bool
- func (k Key) CheckScalar() bool
- func (k Key) DeterministicHashDerive() Key
- func (k Key) HasValue() bool
- func (k Key) HashScalar() *[32]byte
- func (k Key) MarshalJSON() ([]byte, error)
- func (k *Key) MultScalar(outputIndex int) *Key
- func (k Key) Public() Key
- func (privateKey *Key) Sign(message []byte) Signature
- func (k Key) String() string
- func (k *Key) UnmarshalJSON(b []byte) error
- func (publicKey *Key) Verify(message []byte, sig Signature) bool
- func (publicKey *Key) VerifyWithChallenge(message []byte, sig Signature, hReduced [32]byte) bool
- type Keystore
- type KeystoreAuth
- type LiveMessage
- type LocationMessage
- type MessageRequest
- type MessageView
- type MintData
- type MixinnetAddress
- type MultisigRequest
- type MultisigUTXO
- type NetworkAsset
- type NetworkChain
- type NetworkInfo
- type OauthKeystore
- type OauthKeystoreAuth
- type Output
- type Participant
- type Payment
- type RawTransaction
- type RecallMessage
- type Script
- type Signature
- type Signer
- type Snapshot
- type StickerMessage
- type SystemConversationPayload
- type Transaction
- type TransactionExtra
- type TransactionInput
- func (i *TransactionInput) AppendOutput(receivers []string, threshold uint8, amount decimal.Decimal)
- func (i *TransactionInput) AppendUTXO(utxo *MultisigUTXO)
- func (i *TransactionInput) Asset() Hash
- func (i *TransactionInput) TotalInputAmount() decimal.Decimal
- func (i *TransactionInput) Validate() error
- type TransactionOutput
- type TransferInput
- type TransferView
- type Turn
- type UpdateAppRequest
- type User
- type Verifier
- type VideoMessage
- type WithdrawInput
Constants ¶
const ( ScopeProfileRead = "PROFILE:READ" ScopePhoneRead = "PHONE:READ" ScopeContactRead = "CONTACTS:READ" ScopeAssetsRead = "ASSETS:READ" ScopeSnapshotsRead = "SNAPSHOTS:READ" ScopeFull = "FULL" )
const ( CreateMessageAction = "CREATE_MESSAGE" AcknowledgeReceiptAction = "ACKNOWLEDGE_MESSAGE_RECEIPT" )
const ( ConversationCategoryContact = "CONTACT" ConversationCategoryGroup = "GROUP" ParticipantActionAdd = "ADD" ParticipantActionRemove = "REMOVE" ParticipantActionJoin = "JOIN" ParticipantActionExit = "EXIT" ParticipantActionRole = "ROLE" ParticipantRoleOwner = "OWNER" ParticipantRoleAdmin = "ADMIN" ParticipantRoleMember = "" )
const ( DefaultApiHost = "https://api.mixin.one" DefaultBlazeHost = "blaze.mixin.one" ZeromeshApiHost = "https://mixin-api.zeromesh.net" ZeromeshBlazeHost = "mixin-blaze.zeromesh.net" EchoApiHost = "https://echo.yiplee.com" )
const ( EndpointNotFound = 404 InsufficientBalance = 20117 PinIncorrect = 20119 InsufficientFee = 20124 InvalidTraceID = 20125 InvalidReceivers = 20150 InvalidOutputKey = 2000001 InputLocked = 2000002 InvalidSignature = 2000003 )
mixin error codes https://developers.mixin.one/api/alpha-mixin-network/errors/
const ( MessageCategoryPlainText = "PLAIN_TEXT" MessageCategoryPlainPost = "PLAIN_POST" MessageCategoryPlainImage = "PLAIN_IMAGE" MessageCategoryPlainData = "PLAIN_DATA" MessageCategoryPlainSticker = "PLAIN_STICKER" MessageCategoryPlainLive = "PLAIN_LIVE" MessageCategoryPlainVideo = "PLAIN_VIDEO" MessageCategoryPlainContact = "PLAIN_CONTACT" MessageCategoryAppCard = "APP_CARD" MessageCategoryAppButtonGroup = "APP_BUTTON_GROUP" MessageCategoryMessageRecall = "MESSAGE_RECALL" MessageCategorySystemConversation = "SYSTEM_CONVERSATION" MessageCategorySystemAccountSnapshot = "SYSTEM_ACCOUNT_SNAPSHOT" MessageStatusSent = "SENT" MessageStatusRead = "READ" )
const ( Operator0 = 0x00 Operator64 = 0x40 OperatorSum = 0xfe OperatorCmp = 0xff )
const ( UTXOStateUnspent = "unspent" UTXOStateSigned = "signed" UTXOStateSpent = "spent" )
const ( MultisigActionSign = "sign" MultisigActionUnlock = "unlock" )
const ( MultisigStateInitial = "initial" MultisigStateSigned = "signed" )
const ( PaymentStatusPending = "pending" PaymentStatusPaid = "paid" )
const MainNetworkID = "XIN"
const Precision = 8
const Scheme = "mixin"
const (
TxVersion = 0x01
)
Variables ¶
var (
ErrResponseVerifyFailed = errors.New("response verify failed")
)
var URL urlScheme
Functions ¶
func AuthorizeToken ¶
func DecodeMixinNetResponse ¶ added in v1.0.12
func DecodeResponse ¶
func GenerateEd25519Key ¶
func GenerateEd25519Key() ed25519.PrivateKey
func HashMembers ¶ added in v1.1.6
func IsErrorCodes ¶
func MixinNetClientFromContext ¶ added in v1.2.1
func RandomMixinNetHost ¶ added in v1.2.1
func RandomMixinNetHost() string
func RandomTraceID ¶
func RandomTraceID() string
func RequestIdFromContext ¶
func SignRequest ¶
func SignResponse ¶
func SignResponse(r *resty.Response) string
func UniqueConversationID ¶
func UnmarshalMixinNetResponse ¶ added in v1.0.12
func UnmarshalMixinNetResponse(resp *resty.Response, v interface{}) error
func UnmarshalResponse ¶
func UnmarshalResponse(resp *resty.Response, v interface{}) (err error)
func UploadAttachment ¶
func UploadAttachment(ctx context.Context, attachment *Attachment, file []byte) error
func UploadAttachmentTo ¶ added in v1.0.4
func UseApiHost ¶
func UseApiHost(host string)
func UseBlazeHost ¶
func UseBlazeHost(host string)
func UseMixinNetHosts ¶ added in v1.2.1
func UseMixinNetHosts(hosts []string)
func ValidatePinPattern ¶ added in v1.0.5
ValidatePinPattern validate the pin with pinRegex
func VerifyTransaction ¶ added in v1.2.0
检查 transaction 是否是由该主网地址签发。满足以下所有条件则返回 true:
- 该 transaction 只有一个 input ,且该 input 的类型为普通转账类型, 即 Hash 不为空
- 该 input 对应的 utxo 只有一个 keys, 即 不是多签地址 转出
- 该 input 的 mask & keys 可以使用该地址的 private view 和 public spend 碰撞通过
func WithMixinNetHost ¶ added in v1.2.1
func WithRequestID ¶
WithRequestID bind request id to context request id must be uuid
func WrapErrWithRequestID ¶ added in v1.2.7
Types ¶
type AcknowledgementRequest ¶
type Address ¶
type Address struct { AddressID string `json:"address_id,omitempty"` AssetID string `json:"asset_id"` Label string `json:"label,omitempty"` Destination string `json:"destination,omitempty"` Tag string `json:"tag,omitempty"` Fee decimal.Decimal `json:"fee,omitempty"` Dust decimal.Decimal `json:"dust,omitempty"` }
func ReadAddress ¶
type App ¶
type App struct { UpdatedAt time.Time `json:"updated_at,omitempty"` AppID string `json:"app_id,omitempty"` AppNumber string `json:"app_number,omitempty"` RedirectURL string `json:"redirect_url,omitempty"` HomeURL string `json:"home_url,omitempty"` Name string `json:"name,omitempty"` IconURL string `json:"icon_url,omitempty"` Description string `json:"description,omitempty"` Capabilities []string `json:"capabilities,omitempty"` ResourcePatterns []string `json:"resource_patterns,omitempty"` Category string `json:"category,omitempty"` CreatorID string `json:"creator_id,omitempty"` AppSecret string `json:"app_secret,omitempty"` }
type AppButtonGroupMessage ¶
type AppButtonGroupMessage []AppButtonMessage
type AppButtonMessage ¶
type AppCardMessage ¶
type Asset ¶
type Asset struct { AssetID string `json:"asset_id"` ChainID string `json:"chain_id"` AssetKey string `json:"asset_key,omitempty"` MixinID string `json:"mixin_id,omitempty"` Symbol string `json:"symbol,omitempty"` Name string `json:"name,omitempty"` IconURL string `json:"icon_url,omitempty"` PriceBTC decimal.Decimal `json:"price_btc,omitempty"` ChangeBTC decimal.Decimal `json:"change_btc,omitempty"` PriceUSD decimal.Decimal `json:"price_usd,omitempty"` ChangeUsd decimal.Decimal `json:"change_usd,omitempty"` Balance decimal.Decimal `json:"balance,omitempty"` Destination string `json:"destination,omitempty"` Tag string `json:"tag,omitempty"` Confirmations int `json:"confirmations,omitempty"` Capitalization float64 `json:"capitalization,omitempty"` }
type Attachment ¶
type AudioMessage ¶
type BlazeListenFunc ¶
type BlazeListenFunc func(ctx context.Context, msg *MessageView, userID string) error
func (BlazeListenFunc) OnAckReceipt ¶
func (f BlazeListenFunc) OnAckReceipt(ctx context.Context, msg *MessageView, userID string) error
func (BlazeListenFunc) OnMessage ¶
func (f BlazeListenFunc) OnMessage(ctx context.Context, msg *MessageView, userID string) error
type BlazeListener ¶
type BlazeListener interface { OnAckReceipt(ctx context.Context, msg *MessageView, userID string) error OnMessage(ctx context.Context, msg *MessageView, userID string) error }
type BlazeMessage ¶
type Client ¶
func NewFromAccessToken ¶
func NewFromKeystore ¶
func NewFromOauthKeystore ¶
func NewFromOauthKeystore(keystore *OauthKeystore) (*Client, error)
func (*Client) AddParticipants ¶
func (*Client) AdminParticipants ¶
func (*Client) BatchReadGhostKeys ¶ added in v1.2.5
func (*Client) CancelMultisig ¶ added in v1.0.12
CancelMultisig cancel a multisig request
func (*Client) CreateAddress ¶
func (*Client) CreateAttachment ¶
func (c *Client) CreateAttachment(ctx context.Context) (*Attachment, error)
func (*Client) CreateContactConversation ¶
func (c *Client) CreateContactConversation(ctx context.Context, userID string) (*Conversation, error)
CreateContactConversation create a conversation with a mixin messenger user
func (*Client) CreateConversation ¶
func (c *Client) CreateConversation(ctx context.Context, input *CreateConversationInput) (*Conversation, error)
CreateConversation crate conversation
func (*Client) CreateGroupConversation ¶
func (c *Client) CreateGroupConversation(ctx context.Context, conversationID, name string, participants []*Participant) (*Conversation, error)
CreateGroupConversation create a group in mixin messenger with given participants
func (*Client) CreateMultisig ¶ added in v1.0.12
CreateMultisig create a multisig request
func (*Client) CreateUser ¶
func (*Client) DeleteAddress ¶
func (*Client) FavoriteApp ¶ added in v1.0.3
func (*Client) LoopBlaze ¶
func (c *Client) LoopBlaze(ctx context.Context, listener BlazeListener) error
func (*Client) MakeMultisigTransaction ¶ added in v1.1.1
func (c *Client) MakeMultisigTransaction(ctx context.Context, input *TransactionInput) (*Transaction, error)
func (*Client) ManageConversation ¶
func (c *Client) ManageConversation(ctx context.Context, conversationID, action string, participants []*Participant) (*Conversation, error)
func (*Client) ModifyProfile ¶
func (*Client) ReadAddress ¶
func (*Client) ReadAddresses ¶
func (*Client) ReadAssetFee ¶
func (*Client) ReadConversation ¶
func (c *Client) ReadConversation(ctx context.Context, conversationID string) (*Conversation, error)
ReadConversation read conversation
func (*Client) ReadExchangeRates ¶
func (c *Client) ReadExchangeRates(ctx context.Context) ([]ExchangeRate, error)
func (*Client) ReadFavoriteApps ¶
func (*Client) ReadGhostKeys ¶ added in v1.0.12
func (*Client) ReadMultisigOutputs ¶ added in v1.0.12
func (c *Client) ReadMultisigOutputs(ctx context.Context, members []string, threshold uint8, offset time.Time, limit int) ([]*MultisigUTXO, error)
ReadMultisigOutputs return a list of multisig outputs, including unspent, signed, spent utxos
func (*Client) ReadMultisigs ¶ added in v1.0.12
func (c *Client) ReadMultisigs(ctx context.Context, offset time.Time, limit int) ([]*MultisigUTXO, error)
ReadMultisigs return a list of multisig utxos
func (*Client) ReadNetworkSnapshot ¶
func (*Client) ReadNetworkSnapshots ¶
func (*Client) ReadSnapshot ¶
func (*Client) ReadSnapshots ¶
func (c *Client) ReadSnapshots(ctx context.Context, assetID string, offset time.Time, order string, limit int) ([]*Snapshot, error)
ReadSnapshots return a list of snapshots order must be `ASC` or `DESC`
func (*Client) ReadTransfer ¶
func (*Client) ReadTurnServers ¶
func (*Client) RemoveParticipants ¶
func (*Client) RotateConversation ¶
func (*Client) SearchUser ¶
deprecated. Use ReadUser() instead
func (*Client) SendAcknowledgement ¶
func (c *Client) SendAcknowledgement(ctx context.Context, request *AcknowledgementRequest) error
func (*Client) SendAcknowledgements ¶
func (c *Client) SendAcknowledgements(ctx context.Context, requests []*AcknowledgementRequest) error
func (*Client) SendMessage ¶
func (c *Client) SendMessage(ctx context.Context, message *MessageRequest) error
func (*Client) SendMessages ¶
func (c *Client) SendMessages(ctx context.Context, messages []*MessageRequest) error
func (*Client) SendRawMessages ¶
func (*Client) ShowAttachment ¶
func (*Client) SignMultisig ¶ added in v1.0.12
SignMultisig sign a multisig request
func (*Client) Transaction ¶
func (c *Client) Transaction(ctx context.Context, in *TransferInput, pin string) (*RawTransaction, error)
func (*Client) UnlockMultisig ¶ added in v1.0.12
UnlockMultisig unlock a multisig request
func (*Client) VerifyPayment ¶
type ContactMessage ¶
type ContactMessage struct {
UserID string `json:"user_id,omitempty"`
}
type Conversation ¶
type Conversation struct { ConversationID string `json:"conversation_id,omitempty"` CreatorID string `json:"creator_id,omitempty"` Category string `json:"category,omitempty"` Name string `json:"name,omitempty"` IconURL string `json:"icon_url,omitempty"` Announcement string `json:"announcement,omitempty"` CreatedAt string `json:"created_at,omitempty"` CodeID string `json:"code_id,omitempty"` CodeURL string `json:"code_url,omitempty"` Participants []*Participant `json:"participants,omitempty"` }
Conversation conversation
type CreateAddressInput ¶
type CreateConversationInput ¶
type CreateConversationInput struct { Category string `json:"category,omitempty"` ConversationID string `json:"conversation_id,omitempty"` Name string `json:"name,omitempty"` Participants []*Participant `json:"participants,omitempty"` }
type DataMessage ¶
type DepositData ¶ added in v1.1.5
type EdDSASigningMethod ¶
type EdDSASigningMethod struct{}
var Ed25519SigningMethod *EdDSASigningMethod
func (*EdDSASigningMethod) Alg ¶
func (sm *EdDSASigningMethod) Alg() string
func (*EdDSASigningMethod) Sign ¶
func (sm *EdDSASigningMethod) Sign(signingString string, key interface{}) (string, error)
func (*EdDSASigningMethod) Verify ¶
func (sm *EdDSASigningMethod) Verify(signingString, signature string, key interface{}) error
type Error ¶
type ExchangeRate ¶
type ExternalTransaction ¶
type ExternalTransaction struct { TransactionID string `json:"transaction_id"` CreatedAt time.Time `json:"created_at"` TransactionHash string `json:"transaction_hash"` Sender string `json:"sender"` ChainId string `json:"chain_id"` AssetId string `json:"asset_id"` Amount decimal.Decimal `json:"amount"` Destination string `json:"destination"` Tag string `json:"tag"` Confirmations int64 `json:"confirmations"` Threshold int64 `json:"threshold"` }
func ReadExternalTransactions ¶
func ReadExternalTransactions(ctx context.Context, assetID, destination, tag string) ([]*ExternalTransaction, error)
type FavoriteApp ¶
type GhostInput ¶ added in v1.2.5
type Hash ¶ added in v1.1.5
type Hash [32]byte
func HashFromString ¶ added in v1.1.5
func (Hash) MarshalJSON ¶ added in v1.1.5
func (*Hash) UnmarshalJSON ¶ added in v1.1.5
type ImageMessage ¶
type Input ¶ added in v1.0.12
type Input struct { Hash *Hash `json:"hash,omitempty"` Index int `json:"index,omitempty"` Genesis []byte `json:"genesis,omitempty"` Deposit *DepositData `json:"deposit,omitempty"` Mint *MintData `json:"mint,omitempty"` }
type Integer ¶ added in v1.1.5
type Integer struct {
// contains filtered or unexported fields
}
func NewIntegerFromDecimal ¶ added in v1.1.5
func NewIntegerFromString ¶ added in v1.1.5
func (Integer) MarshalJSON ¶ added in v1.1.5
func (Integer) MarshalMsgpack ¶ added in v1.1.5
func (*Integer) UnmarshalJSON ¶ added in v1.1.5
func (*Integer) UnmarshalMsgpack ¶ added in v1.1.5
type Key ¶ added in v1.1.5
type Key [32]byte
func DeriveGhostPrivateKey ¶ added in v1.2.0
func DeriveGhostPublicKey ¶ added in v1.2.0
func KeyFromString ¶ added in v1.1.5
func KeyMultPubPriv ¶ added in v1.2.0
func NewKeyFromSeed ¶ added in v1.2.0
func ViewGhostOutputKey ¶ added in v1.2.0
func (Key) CheckScalar ¶ added in v1.2.0
func (Key) DeterministicHashDerive ¶ added in v1.2.0
func (Key) HashScalar ¶ added in v1.2.0
func (Key) MarshalJSON ¶ added in v1.1.5
func (*Key) MultScalar ¶ added in v1.2.0
func (*Key) UnmarshalJSON ¶ added in v1.1.5
type KeystoreAuth ¶
type KeystoreAuth struct { *Keystore // contains filtered or unexported fields }
func AuthEd25519FromKeystore ¶ added in v1.1.7
func AuthEd25519FromKeystore(store *Keystore) (*KeystoreAuth, error)
AuthEd25519FromKeystore produces a signer using a ed25519 keystore.
func AuthFromKeystore ¶
func AuthFromKeystore(store *Keystore) (*KeystoreAuth, error)
func (*KeystoreAuth) EncryptPin ¶
func (k *KeystoreAuth) EncryptPin(pin string) string
type LiveMessage ¶
type LocationMessage ¶
type MessageRequest ¶
type MessageRequest struct { ConversationID string `json:"conversation_id"` RecipientID string `json:"recipient_id"` MessageID string `json:"message_id"` Category string `json:"category"` Data string `json:"data"` RepresentativeID string `json:"representative_id,omitempty"` QuoteMessageID string `json:"quote_message_id,omitempty"` }
type MessageView ¶
type MessageView struct { ConversationID string `json:"conversation_id"` UserID string `json:"user_id"` MessageID string `json:"message_id"` Category string `json:"category"` Data string `json:"data"` RepresentativeID string `json:"representative_id"` QuoteMessageID string `json:"quote_message_id"` Status string `json:"status"` Source string `json:"source"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` // contains filtered or unexported fields }
func (*MessageView) Ack ¶
func (m *MessageView) Ack()
Ack mark messageView as acked otherwise sdk will ack this message
type MixinnetAddress ¶ added in v1.2.0
type MixinnetAddress struct { PrivateSpendKey Key `json:"private_spend_key"` PrivateViewKey Key `json:"private_view_key"` PublicSpendKey Key `json:"public_spend_key"` PublicViewKey Key `json:"public_view_key"` }
func NewMixinnetAddress ¶ added in v1.2.0
func NewMixinnetAddress(rand io.Reader, public ...bool) *MixinnetAddress
func NewMixinnetAddressFromPublicSpend ¶ added in v1.2.0
func NewMixinnetAddressFromPublicSpend(publicSpend Key) *MixinnetAddress
func NewMixinnetAddressFromString ¶ added in v1.2.0
func NewMixinnetAddressFromString(s string) (MixinnetAddress, error)
func (MixinnetAddress) CreateUTXO ¶ added in v1.2.0
func (a MixinnetAddress) CreateUTXO(outputIndex int, amount decimal.Decimal) *Output
func (MixinnetAddress) Hash ¶ added in v1.2.0
func (a MixinnetAddress) Hash() Hash
func (MixinnetAddress) MarshalJSON ¶ added in v1.2.0
func (a MixinnetAddress) MarshalJSON() ([]byte, error)
func (MixinnetAddress) String ¶ added in v1.2.0
func (a MixinnetAddress) String() string
func (*MixinnetAddress) UnmarshalJSON ¶ added in v1.2.0
func (a *MixinnetAddress) UnmarshalJSON(b []byte) error
type MultisigRequest ¶ added in v1.0.12
type MultisigRequest struct { Type string `json:"type"` RequestID string `json:"request_id"` UserID string `json:"user_id"` AssetID string `json:"asset_id"` Amount decimal.Decimal `json:"amount"` Threshold uint8 `json:"threshold"` Senders []string `json:"senders"` Receivers []string `json:"receivers"` Signers []string `json:"signers"` Memo string `json:"memo"` Action string `json:"action"` State string `json:"state"` TransactionHash Hash `json:"transaction_hash"` RawTransaction string `json:"raw_transaction"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` CodeID string `json:"code_id"` }
type MultisigUTXO ¶ added in v1.0.12
type MultisigUTXO struct { Type string `json:"type"` UserID string `json:"user_id"` UTXOID string `json:"utxo_id"` AssetID string `json:"asset_id"` TransactionHash Hash `json:"transaction_hash"` OutputIndex int `json:"output_index"` Amount decimal.Decimal `json:"amount"` Threshold uint8 `json:"threshold"` Members []string `json:"members"` Memo string `json:"memo"` State string `json:"state"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` SignedBy string `json:"signed_by"` SignedTx string `json:"signed_tx"` }
func (MultisigUTXO) Asset ¶ added in v1.1.5
func (utxo MultisigUTXO) Asset() Hash
type NetworkAsset ¶
type NetworkAsset struct { Amount decimal.Decimal `json:"amount"` AssetID string `json:"asset_id"` IconURL string `json:"icon_url"` Symbol string `json:"symbol"` // populated only at ReadNetworkAsset ChainID string `json:"chain_id,omitempty"` MixinID string `json:"mixin_id,omitempty"` Name string `json:"name,omitempty"` SnapshotCount int64 `json:"snapshot_count,omitempty"` }
func ReadNetworkAsset ¶
func ReadNetworkAsset(ctx context.Context, assetID string) (*NetworkAsset, error)
type NetworkChain ¶
type NetworkChain struct { ChainID string `json:"chain_id"` IconURL string `json:"icon_url"` Name string `json:"name"` Type string `json:"type"` WithdrawFee decimal.Decimal `json:"withdrawal_fee"` WithdrawTimestamp time.Time `json:"withdrawal_timestamp"` WithdrawPendingCount int64 `json:"withdrawal_pending_count"` DepositBlockHeight int64 `json:"deposit_block_height"` ExternalBlockHeight int64 `json:"external_block_height"` ManagedBlockHeight int64 `json:"managed_block_height"` IsSynchronized bool `json:"is_synchronized"` }
type NetworkInfo ¶
type NetworkInfo struct { Assets []*NetworkAsset `json:"assets"` Chains []*NetworkChain `json:"chains"` AssetsCount decimal.Decimal `json:"assets_count"` PeakThroughput decimal.Decimal `json:"peak_throughput"` SnapshotsCount decimal.Decimal `json:"snapshots_count"` Type string `json:"type"` }
NetworkInfo mixin network info
func ReadNetworkInfo ¶
func ReadNetworkInfo(ctx context.Context) (*NetworkInfo, error)
ReadNetworkInfo read mixin network
type OauthKeystore ¶
type OauthKeystore struct { ClientID string `json:"client_id,omitempty"` AuthID string `json:"authorization_id,omitempty"` Scope string `json:"scope,omitempty"` PrivateKey string `json:"private_key,omitempty"` VerifyKey string `json:"ed25519,omitempty"` }
func AuthorizeEd25519 ¶
func AuthorizeEd25519(ctx context.Context, clientID, clientSecret string, code string, verifier string, privateKey ed25519.PrivateKey) (*OauthKeystore, error)
type OauthKeystoreAuth ¶
type OauthKeystoreAuth struct { *OauthKeystore // contains filtered or unexported fields }
func AuthFromOauthKeystore ¶
func AuthFromOauthKeystore(store *OauthKeystore) (*OauthKeystoreAuth, error)
func (*OauthKeystoreAuth) EncryptPin ¶
func (o *OauthKeystoreAuth) EncryptPin(pin string) string
func (*OauthKeystoreAuth) SignToken ¶
func (o *OauthKeystoreAuth) SignToken(signature, requestID string, exp time.Duration) string
func (*OauthKeystoreAuth) Verify ¶
func (o *OauthKeystoreAuth) Verify(resp *resty.Response) error
type Participant ¶
type Participant struct { Action string `json:"action,omitempty"` Type string `json:"type,omitempty"` UserID string `json:"user_id,omitempty"` Role string `json:"role,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` }
Participant conversation participant
type Payment ¶
type Payment struct { Recipient *User `json:"recipient,omitempty"` Asset *Asset `json:"asset,omitempty"` AssetID string `json:"asset_id,omitempty"` Amount string `json:"amount,omitempty"` TraceID string `json:"trace_id,omitempty"` Status string `json:"status,omitempty"` Memo string `json:"memo,omitempty"` Receivers []string `json:"receivers,omitempty"` Threshold uint8 `json:"threshold,omitempty"` CodeID string `json:"code_id,omitempty"` }
type RawTransaction ¶
type RawTransaction struct { Type string `json:"type"` SnapshotID string `json:"snapshot"` OpponentKey string `json:"opponent_key"` AssetID string `json:"asset_id"` Amount string `json:"amount"` TraceID string `json:"trace_id"` Memo string `json:"memo"` State string `json:"state"` CreatedAt time.Time `json:"created_at"` TransactionHash string `json:"transaction_hash,omitempty"` SnapshotHash string `json:"snapshot_hash,omitempty"` SnapshotAt time.Time `json:"snapshot_at"` }
RawTransaction raw transaction
type RecallMessage ¶
type RecallMessage struct {
MessageID string `json:"message_id"`
}
type Script ¶ added in v1.1.5
type Script []uint8
func NewThresholdScript ¶ added in v1.1.5
func (Script) MarshalJSON ¶ added in v1.1.5
func (*Script) UnmarshalJSON ¶ added in v1.1.5
func (Script) VerifyFormat ¶ added in v1.1.5
type Signature ¶ added in v1.1.5
type Signature [64]byte
func (Signature) MarshalJSON ¶ added in v1.1.5
func (*Signature) UnmarshalJSON ¶ added in v1.1.5
type Snapshot ¶
type Snapshot struct { SnapshotID string `json:"snapshot_id"` CreatedAt time.Time `json:"created_at,omitempty"` TraceID string `json:"trace_id,omitempty"` UserID string `json:"user_id,omitempty"` AssetID string `json:"asset_id,omitempty"` ChainID string `json:"chain_id,omitempty"` OpponentID string `json:"opponent_id,omitempty"` Source string `json:"source,omitempty"` Amount decimal.Decimal `json:"amount,omitempty"` OpeningBalance decimal.Decimal `json:"opening_balance,omitempty"` ClosingBalance decimal.Decimal `json:"closing_balance,omitempty"` Memo string `json:"memo,omitempty"` Type string `json:"type,omitempty"` Sender string `json:"sender,omitempty"` Receiver string `json:"receiver,omitempty"` TransactionHash string `json:"transaction_hash,omitempty"` Asset *Asset `json:"asset,omitempty"` }
func ReadSnapshot ¶
ReadSnapshot by accessToken, scope SNAPSHOTS:READ required
func ReadSnapshots ¶
func ReadSnapshots(ctx context.Context, accessToken string, assetID string, offset time.Time, order string, limit int) ([]*Snapshot, error)
ReadSnapshots by accessToken, scope SNAPSHOTS:READ required
func (*Snapshot) UnmarshalJSON ¶
type StickerMessage ¶
type Transaction ¶ added in v1.0.12
type Transaction struct { Hash *Hash `json:"hash,omitempty" msgpack:"-"` Version uint8 `json:"version"` Asset Hash `json:"asset"` Inputs []*Input `json:"inputs"` Outputs []*Output `json:"outputs"` Extra TransactionExtra `json:"extra,omitempty"` Signatures [][]Signature `json:"signatures,omitempty" msgpack:",omitempty"` Snapshot *Hash `json:"snapshot,omitempty" msgpack:"-"` }
func GetTransaction ¶ added in v1.0.12
func GetTransaction(ctx context.Context, hash Hash) (*Transaction, error)
func SendRawTransaction ¶ added in v1.0.12
func SendRawTransaction(ctx context.Context, raw string) (*Transaction, error)
func TransactionFromRaw ¶ added in v1.1.1
func TransactionFromRaw(raw string) (*Transaction, error)
func (*Transaction) DumpTransaction ¶ added in v1.1.1
func (t *Transaction) DumpTransaction() (string, error)
func (*Transaction) DumpTransactionPayload ¶ added in v1.1.5
func (t *Transaction) DumpTransactionPayload() (string, error)
func (*Transaction) TransactionHash ¶ added in v1.1.5
func (t *Transaction) TransactionHash() (Hash, error)
type TransactionExtra ¶ added in v1.2.0
type TransactionExtra []byte
func (TransactionExtra) MarshalJSON ¶ added in v1.2.0
func (e TransactionExtra) MarshalJSON() ([]byte, error)
func (TransactionExtra) String ¶ added in v1.2.0
func (e TransactionExtra) String() string
func (*TransactionExtra) UnmarshalJSON ¶ added in v1.2.0
func (e *TransactionExtra) UnmarshalJSON(b []byte) error
type TransactionInput ¶ added in v1.1.1
type TransactionInput struct { Memo string Inputs []*MultisigUTXO Outputs []TransactionOutput Hint string }
func (*TransactionInput) AppendOutput ¶ added in v1.1.3
func (i *TransactionInput) AppendOutput(receivers []string, threshold uint8, amount decimal.Decimal)
func (*TransactionInput) AppendUTXO ¶ added in v1.1.3
func (i *TransactionInput) AppendUTXO(utxo *MultisigUTXO)
func (*TransactionInput) Asset ¶ added in v1.1.1
func (i *TransactionInput) Asset() Hash
func (*TransactionInput) TotalInputAmount ¶ added in v1.1.1
func (i *TransactionInput) TotalInputAmount() decimal.Decimal
func (*TransactionInput) Validate ¶ added in v1.1.1
func (i *TransactionInput) Validate() error
type TransactionOutput ¶
type TransferInput ¶
type TransferInput struct { AssetID string `json:"asset_id,omitempty"` OpponentID string `json:"opponent_id,omitempty"` Amount decimal.Decimal `json:"amount,omitempty"` TraceID string `json:"trace_id,omitempty"` Memo string `json:"memo,omitempty"` // OpponentKey used for raw transaction OpponentKey string `json:"opponent_key,omitempty"` OpponentMultisig struct { Receivers []string `json:"receivers,omitempty"` Threshold uint8 `json:"threshold,omitempty"` } `json:"opponent_multisig,omitempty"` }
TransferInput input for transfer/verify payment request
type TransferView ¶
type TransferView struct { Type string `json:"type"` SnapshotID string `json:"snapshot_id"` CounterUserID string `json:"counter_user_id"` AssetID string `json:"asset_id"` Amount string `json:"amount"` TraceID string `json:"trace_id"` Memo string `json:"memo"` CreatedAt time.Time `json:"created_at"` }
type UpdateAppRequest ¶ added in v1.0.9
type UpdateAppRequest struct { RedirectURI string `json:"redirect_uri,omitempty"` HomeURI string `json:"home_uri,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` IconBase64 string `json:"icon_base64,omitempty"` SessionSecret string `json:"session_secret,omitempty"` Category string `json:"category,omitempty"` Capabilities []string `json:"capabilities,omitempty"` ResourcePatterns []string `json:"resource_patterns,omitempty"` }
type User ¶
type User struct { UserID string `json:"user_id,omitempty"` IdentityNumber string `json:"identity_number,omitempty"` Phone string `json:"phone,omitempty"` FullName string `json:"full_name,omitempty"` Biography string `json:"biography,omitempty"` AvatarURL string `json:"avatar_url,omitempty"` Relationship string `json:"relationship,omitempty"` MuteUntil time.Time `json:"mute_until,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` IsVerified bool `json:"is_verified,omitempty"` SessionID string `json:"session_id,omitempty"` PinToken string `json:"pin_token,omitempty"` CodeID string `json:"code_id,omitempty"` CodeURL string `json:"code_url,omitempty"` HasPin bool `json:"has_pin,omitempty"` App *App `json:"app,omitempty"` }
type Verifier ¶
type Verifier interface {
Verify(resp *resty.Response) error
}
func NopVerifier ¶
func NopVerifier() Verifier
type VideoMessage ¶
type VideoMessage struct { AttachmentID string `json:"attachment_id,omitempty"` MimeType string `json:"mime_type,omitempty"` WaveForm string `json:"wave_form,omitempty"` Width int `json:"width,omitempty"` Height int `json:"height,omitempty"` Size int `json:"size,omitempty"` Duration int `json:"duration,omitempty"` Thumbnail []byte `json:"thumbnail,omitempty"` }
Source Files ¶
- ack.go
- address.go
- app.go
- assets.go
- attachment.go
- auth.go
- blaze.go
- blaze_handler.go
- client.go
- context.go
- conversation.go
- ed25519.go
- ed25519_jwt.go
- endpoint.go
- error.go
- fiats.go
- keystore.go
- messages.go
- mixinnet.go
- mixinnet_address.go
- mixinnet_clients.go
- mixinnet_crypto.go
- mixinnet_key.go
- mixinnet_number.go
- mixinnet_signature.go
- mixinnet_transaction.go
- multisigs.go
- network.go
- oauth.go
- oauth_ed25519.go
- payment.go
- pin.go
- request.go
- sign.go
- snapshot.go
- transaction_external.go
- transaction_raw.go
- transfer.go
- turn.go
- url_scheme.go
- user.go
- utils.go
- withdraw.go