Documentation ¶
Index ¶
- Constants
- Variables
- func AesDecrypt(secret, b []byte) ([]byte, error)
- func AesEncrypt(secret, b []byte) ([]byte, error)
- func AssetBalance(ctx context.Context, assetId, uid, sid, sessionKey string) (common.Integer, error)
- func AssetBalanceWithSafeUser(ctx context.Context, kernelAssetId string, su *SafeUser) (common.Integer, error)
- func CallKernelRPC(ctx context.Context, uid, sid, sessionKey, method string, ...) ([]byte, error)
- func CancelMultisig(ctx context.Context, id string, uid, sid, sessionKey string) error
- func Chunked(source []interface{}, size int) [][]interface{}
- func DecryptMessageData(data string, sessionId, private string) (string, error)
- func DeleteAddress(ctx context.Context, addressId, uid, sid, sessionKey, pin, pinToken string) error
- func EncryptEd25519PIN(pin, pinTokenBase64, privateKey string, iterator uint64) (string, error)
- func EncryptMessageData(data string, sessions []*Session, privateKey string) (string, error)
- func EncryptPIN(pin, pinToken, sessionId, privateKey string, iterator uint64) (string, error)
- func GenerateUserChecksum(sessions []*Session) string
- func GetChainName(chainId string) string
- func GetFullChains() map[string]bool
- func HashMembers(ids []string) string
- func IsChainId(id string) bool
- func MakeUniqueStringSlice(ss []string) []string
- func NewTransport(roundTripper http.RoundTripper, uid, sid, privateKey string) (*transport, error)
- func OAuthGetAccessToken(ctx context.Context, clientID, clientSecret string, authorizationCode string, ...) (string, string, string, error)
- func PayWithdrawalFee(ctx context.Context, traceId, feeId, amount string, u *SafeUser) (*common.VersionedTransaction, error)
- func PostAcknowledgements(ctx context.Context, requests []*ReceiptAcknowledgementRequest, ...) error
- func PostMessage(ctx context.Context, ...) error
- func PostMessages(ctx context.Context, messages []*MessageRequest, ...) error
- func PrivateKeyToCurve25519(curve25519Private *[32]byte, privateKey ed25519.PrivateKey)
- func PublicKeyToCurve25519(publicKey ed25519.PublicKey) ([]byte, error)
- func ReadCode[C Code](ctx context.Context, codeId string) (C, error)
- func Request(ctx context.Context, method, path string, body []byte, accessToken string) ([]byte, error)
- func RequestWithId(ctx context.Context, method, path string, body []byte, ...) ([]byte, error)
- func SchemeApps(appID, action string, params map[string]string) string
- func SchemeCodes(codeId string) string
- func SchemeConversations(conversationID, userID string) string
- func SchemePay(assetId, traceId, recipientId, memo string, amount number.Decimal) string
- func SchemeSend(category SendSchemeCategory, data []byte, conversationID string) string
- func SchemeSnapshots(snapshotId, traceId string) string
- func SchemeTransfer(userId string) string
- func SchemeUsers(userId string) string
- func SetBaseUri(base string)
- func SetBlazeUri(blaze string)
- func SetUserAgent(ua string)
- func SharedKey(public ed25519.PublicKey, private ed25519.PrivateKey) ([32]byte, error)
- func SignAuthenticationToken(uid, sid, privateKey, method, uri, body string) (string, error)
- func SignAuthenticationTokenWithoutBody(uid, sid, privateKey, method, uri string) (string, error)
- func SignOauthAccessToken(appID, authorizationID, privateKey, method, uri, body, scp string, ...) (string, error)
- func SimpleRequest(ctx context.Context, method, path string, body []byte) ([]byte, error)
- func TIPBodyForSequencerRegister(userId, publicKey string) []byte
- func TIPBodyForVerify(timestamp int64) []byte
- func TIPMigrateBody(pub ed25519.PublicKey) string
- func TipBody(s string) []byte
- func TipBodyForAddressAdd(assetId string, publicKey, keyTag, name string) []byte
- func TipBodyForEmergencyContactCreate(verificationId, code string) []byte
- func TipBodyForOwnershipTransfer(userId string) []byte
- func TipBodyForPhoneNumberUpdate(verificationId, code string) []byte
- func TipBodyForProvisioningUpdate(deviceId string, secret string) []byte
- func TipBodyForRawTransactionCreate(assetId string, opponentKey string, opponentReceivers []string, ...) []byte
- func TipBodyForTransfer(assetId string, counterUserId string, amount number.Decimal, ...) []byte
- func TipBodyForWithdrawalCreate(addressId string, amount, fee number.Decimal, traceId, memo string) []byte
- func UniqueConversationId(userId, recipientId string) string
- func UniqueObjectId(args ...string) string
- func UnlockMultisig(ctx context.Context, id, pin string, uid, sid, sessionKey string) error
- func UpdatePin(ctx context.Context, ...) error
- func UpdateTipPin(ctx context.Context, pin, pubTip, pinToken, uid, sid, sessionKey string) error
- func UuidFromBytes(input []byte) (uuid.UUID, error)
- func UuidFromString(id string) (uuid.UUID, error)
- func UuidNewV4() uuid.UUID
- func WithAPIKey(userId, sessionId, p string)
- type Address
- type AddressInput
- type App
- type AppButtonView
- type Asset
- type AssetTicker
- type Attachment
- type Authenticator
- type BlazeClient
- func (b *BlazeClient) Loop(ctx context.Context, listener BlazeListener) error
- func (b *BlazeClient) SendAppButton(ctx context.Context, conversationId, recipientId, label, action, color string) error
- func (b *BlazeClient) SendAppCard(ctx context.Context, ...) error
- func (b *BlazeClient) SendContact(ctx context.Context, conversationId, recipientId, contactId string) error
- func (b *BlazeClient) SendGroupAppButton(ctx context.Context, conversationId, recipientId string, ...) error
- func (b *BlazeClient) SendMessage(ctx context.Context, ...) error
- func (b *BlazeClient) SendPlainText(ctx context.Context, msg MessageView, content string) error
- func (b *BlazeClient) SendPost(ctx context.Context, msg MessageView, content string) error
- func (b *BlazeClient) SendRecallMessage(ctx context.Context, conversationId, recipientId, recallMessageId string) error
- func (b *BlazeClient) SetupDailer(dailer *websocket.Dialer)
- type BlazeListener
- type BlazeMessage
- type Code
- type Conversation
- func ConversationShow(ctx context.Context, conversationId, uid, sid, key string) (*Conversation, error)
- func ConversationShowByToken(ctx context.Context, conversationId string, accessToken string) (*Conversation, error)
- func CreateContactConversation(ctx context.Context, participantID, uid, sid, key string) (*Conversation, error)
- func CreateConversation(ctx context.Context, category, conversationId string, ...) (*Conversation, error)
- func JoinConversation(ctx context.Context, conversationId, uid, sid, key string) (*Conversation, error)
- type DepositEntryView
- type Error
- type Fiat
- type GhostKeyRequest
- type GhostKeys
- type ImageMessagePayload
- type KernelDepositView
- type KernelTransactionRequestCreateRequest
- type LiveMessagePayload
- type MessageRequest
- type MessageView
- type MixAddress
- type MultisigRequest
- func CreateMultisig(ctx context.Context, action, raw string, uid, sid, sessionKey string) (*MultisigRequest, error)
- func ReadMultisigByCode(ctx context.Context, codeId string) (*MultisigRequest, error)
- func SignMultisig(ctx context.Context, id, pin string, uid, sid, sessionKey string) (*MultisigRequest, error)
- type MultisigUTXO
- type NetworkChain
- type Output
- type Participant
- type ParticipantSessionView
- type RecallMessagePayload
- type ReceiptAcknowledgementRequest
- type SafeDepositView
- type SafeSnapshot
- func SafeSnapshotById(ctx context.Context, snapshotId string, uid, sid, sessionKey string) (*SafeSnapshot, error)
- func SafeSnapshotByToken(ctx context.Context, snapshotId string, accessToken string) (*SafeSnapshot, error)
- func SafeSnapshots(ctx context.Context, limit int, ...) ([]*SafeSnapshot, error)
- func SafeSnapshotsByToken(ctx context.Context, limit int, ...) ([]*SafeSnapshot, error)
- type SafeUser
- type SafeWithdrawalView
- type SendSchemeCategory
- type SequencerTransactionRequest
- func CreateObjectStorageTransaction(ctx context.Context, extra []byte, traceId string, u *SafeUser) (*SequencerTransactionRequest, error)
- func GetTransactionById(ctx context.Context, requestId string) (*SequencerTransactionRequest, error)
- func SendTransaction(ctx context.Context, assetId string, recipients []*TransactionRecipient, ...) (*SequencerTransactionRequest, error)
- func SendWithdrawal(ctx context.Context, assetId, destination, tag, amount, traceId string, ...) (*SequencerTransactionRequest, error)
- type Session
- type TipNodeData
- type TransactionRecipient
- type TransferView
- type Turn
- type User
- func CreateUser(ctx context.Context, sessionSecret, fullName, uid, sid, privateKey string) (*User, error)
- func CreateUserSimple(ctx context.Context, sessionSecret, fullName string) (*User, error)
- func GetUser(ctx context.Context, userId, uid, sid, sessionKey string) (*User, error)
- func RegisterSafe(ctx context.Context, userId, publicKey, seed string, ...) (*User, error)
- func Relationship(ctx context.Context, uid, sid, privateKey string, userId, action string) (*User, error)
- func RequestUserMe(ctx context.Context, uid, sid, privateKey string) (*User, error)
- func SearchUser(ctx context.Context, mixinId, uid, sid, sessionKey string) (*User, error)
- func UpdatePreference(ctx context.Context, uid, sid, privateKey string, ...) (*User, error)
- func UpdateUserMe(ctx context.Context, uid, sid, privateKey, fullName, avatarBase64 string) (*User, error)
- func UserMe(ctx context.Context, accessToken string) (*User, error)
- func UserMeWithRequestID(ctx context.Context, accessToken, requestID string) (*User, error)
- func VerifyPIN(ctx context.Context, uid, pin, pinToken, sessionId, privateKey string) (*User, error)
- func VerifyPINTip(ctx context.Context, uid, pinToken, sessionId, privateKey, privateTip string) (*User, error)
- type UserSession
- type UtxoError
Constants ¶
const ( BTC = "c6d0c728-2624-429b-8e0d-d9d19b6592fa" ETH = "43d61dcd-e413-450d-80b8-101d5e903357" USDT_ERC20 = "4d8c508b-91c5-375b-92b0-ee702ed2dac5" USDC_ERC20 = "9b180ab6-6abe-3dc0-a13f-04169eb34bfa" USDT_TRC20 = "b91e18ff-a9ae-3dc7-8679-e935d9a4b34b" )
const ( MessageCategoryPlainText = "PLAIN_TEXT" MessageCategoryPlainImage = "PLAIN_IMAGE" MessageCategoryPlainData = "PLAIN_DATA" MessageCategoryPlainSticker = "PLAIN_STICKER" MessageCategoryPlainLive = "PLAIN_LIVE" MessageCategoryPlainContact = "PLAIN_CONTACT" MessageCategoryPlainPost = "PLAIN_POST" MessageCategoryPlainLocation = "PLAIN_LOCATION" MessageCategoryPlainTranscript = "PLAIN_TRANSCRIPT" MessageCategorySystemConversation = "SYSTEM_CONVERSATION" MessageCategorySystemAccountSnapshot = "SYSTEM_ACCOUNT_SNAPSHOT" MessageCategoryMessageRecall = "MESSAGE_RECALL" MessageCategoryMessagePin = "MESSAGE_PIN" MessageCategoryAppButtonGroup = "APP_BUTTON_GROUP" MessageCategoryAppCard = "APP_CARD" MessageCategorySystemSafeSnapshot = "SYSTEM_SAFE_SNAPSHOT" )
const ( BitcoinChainId = "c6d0c728-2624-429b-8e0d-d9d19b6592fa" BitcoinCashChainId = "fd11b6e3-0b87-41f1-a41f-f0e9b49e5bf0" BitcoinSVChainId = "574388fd-b93f-4034-a682-01c2bc095d17" LitecoinChainId = "76c802a2-7c88-447f-a93e-c29c9e5dd9c8" EthereumChainId = "43d61dcd-e413-450d-80b8-101d5e903357" EthereumClassicChainId = "2204c1ee-0ea2-4add-bb9a-b3719cfff93a" BSCChainId = "1949e683-6a08-49e2-b087-d6b72398588f" PolygonChainId = "b7938396-3f94-4e0a-9179-d3440718156f" MVMChainId = "a0ffd769-5850-4b48-9651-d2ae44a3e64d" DecredChainId = "8f5caf2a-283d-4c85-832a-91e83bbf290b" RippleChainId = "23dfb5a5-5d7b-48b6-905f-3970e3176e27" SiacoinChainId = "990c4c29-57e9-48f6-9819-7d986ea44985" EOSChainId = "6cfe566e-4aad-470b-8c9a-2fd35b49c68d" DogecoinChainId = "6770a1e5-6086-44d5-b60f-545f9d9e8ffd" DashChainId = "6472e7e3-75fd-48b6-b1dc-28d294ee1476" ZcashChainId = "c996abc9-d94e-4494-b1cf-2a3fd3ac5714" NEMChainId = "27921032-f73e-434e-955f-43d55672ee31" ArweaveChainId = "882eb041-64ea-465f-a4da-817bd3020f52" HorizenChainId = "a2c5d22b-62a2-4c13-b3f0-013290dbac60" TRONChainId = "25dabac5-056a-48ff-b9f9-f67395dc407c" StellarChainId = "56e63c06-b506-4ec5-885a-4a5ac17b83c1" MassGridChainId = "b207bce9-c248-4b8e-b6e3-e357146f3f4c" BytomChainId = "443e1ef5-bc9b-47d3-be77-07f328876c50" BytomPoSChainId = "71a0e8b5-a289-4845-b661-2b70ff9968aa" CosmosChainId = "7397e9f1-4e42-4dc8-8a3b-171daaadd436" AkashChainId = "9c612618-ca59-4583-af34-be9482f5002d" BinanceChainId = "17f78d7c-ed96-40ff-980c-5dc62fecbc85" MoneroChainId = "05c5ac01-31f9-4a69-aa8a-ab796de1d041" StarcoinChainId = "c99a3779-93df-404d-945d-eddc440aa0b2" RavencoinChainId = "6877d485-6b64-4225-8d7e-7333393cb243" GrinChainId = "1351e6bd-66cf-40c1-8105-8a8fe518a222" VCashChainId = "c3b9153a-7fab-4138-a3a4-99849cadc073" HandshakeChainId = "13036886-6b83-4ced-8d44-9f69151587bf" NervosChainId = "d243386e-6d84-42e6-be03-175be17bf275" TezosChainId = "5649ca42-eb5f-4c0e-ae28-d9a4e77eded3" NamecoinChainId = "f8b77dc0-46fd-4ea1-9821-587342475869" SolanaChainId = "64692c23-8971-4cf4-84a7-4dd1271dd887" NearChainId = "d6ac94f7-c932-4e11-97dd-617867f0669e" FilecoinChainId = "08285081-e1d8-4be6-9edc-e203afa932da" MobileCoinChainId = "eea900a8-b327-488c-8d8d-1428702fe240" PolkadotChainId = "54c61a72-b982-4034-a556-0d99e3c21e39" KusamaChainId = "9d29e4f6-d67c-4c4b-9525-604b04afbe9f" AlgorandChainId = "706b6f84-3333-4e55-8e89-275e71ce9803" AvalancheChainId = "cbc77539-0a20-4666-8c8a-4ded62b36f0a" XDCChainId = "b12bb04a-1cea-401c-a086-0be61f544889" AptosChainId = "d2c1c7e1-a1a9-4f88-b282-d93b0a08b42b" TONChainId = "ef660437-d915-4e27-ad3f-632bfb6ba0ee" )
const ( MixAddressPrefix = "MIX" MixAddressVersion = byte(2) )
const ( TIPVerify = "TIP:VERIFY:" TIPAddressAdd = "TIP:ADDRESS:ADD:" TIPAddressRemove = "TIP:ADDRESS:REMOVE:" TIPUserDeactivate = "TIP:USER:DEACTIVATE:" TIPEmergencyContactCreate = "TIP:EMERGENCY:CONTACT:CREATE:" TIPEmergencyContactRead = "TIP:EMERGENCY:CONTACT:READ:" TIPEmergencyContactRemove = "TIP:EMERGENCY:CONTACT:REMOVE:" TIPPhoneNumberUpdate = "TIP:PHONE:NUMBER:UPDATE:" TIPMultisigRequestSign = "TIP:MULTISIG:REQUEST:SIGN:" TIPMultisigRequestUnlock = "TIP:MULTISIG:REQUEST:UNLOCK:" TIPCollectibleRequestSign = "TIP:COLLECTIBLE:REQUEST:SIGN:" TIPCollectibleRequestUnlock = "TIP:COLLECTIBLE:REQUEST:UNLOCK:" TIPTransferCreate = "TIP:TRANSFER:CREATE:" TIPWithdrawalCreate = "TIP:WITHDRAWAL:CREATE:" TIPRawTransactionCreate = "TIP:TRANSACTION:CREATE:" TIPOAuthApprove = "TIP:OAUTH:APPROVE:" TIPProvisioningUpdate = "TIP:PROVISIONING:UPDATE:" TIPOwnershipTransfer = "TIP:APP:OWNERSHIP:TRANSFER:" TIPSequencerRegister = "SEQUENCER:REGISTER:" )
const ( RelationshipActionAdd = "ADD" RelationshipActionUpdate = "UPDATE" RelationshipActionRemove = "REMOVE" RelationshipActionBlock = "BLOCK" RelationshipActionUnblock = "UNBLOCK" PreferenceSourceAll = "EVERYBODY" PreferenceSourceContacts = "CONTACTS" PreferenceSourceNobody = "NOBODY" )
Variables ¶
var ( DefaultApiHost = "https://api.mixin.one" DefaultBlazeHost = "blaze.mixin.one" ZeromeshApiHost = "https://mixin-api.zeromesh.net" ZeromeshBlazeHost = "mixin-blaze.zeromesh.net" )
var Nil = uuid.Nil
Functions ¶
func AesDecrypt ¶
func AesEncrypt ¶
func AssetBalance ¶ added in v2.0.3
func AssetBalanceWithSafeUser ¶ added in v2.0.3
func CallKernelRPC ¶ added in v2.0.5
func CancelMultisig ¶
func DecryptMessageData ¶
func DeleteAddress ¶
func EncryptEd25519PIN ¶
func EncryptMessageData ¶
func EncryptPIN ¶
func GenerateUserChecksum ¶
func GetChainName ¶ added in v2.0.3
func GetFullChains ¶ added in v2.0.3
func HashMembers ¶
func MakeUniqueStringSlice ¶ added in v2.0.5
func NewTransport ¶
func NewTransport( roundTripper http.RoundTripper, uid, sid, privateKey string) (*transport, error)
NewTransport returns a new transport based on the given inputs.
func OAuthGetAccessToken ¶
func OAuthGetAccessToken(ctx context.Context, clientID, clientSecret string, authorizationCode string, codeVerifier string, ed25519 string) (string, string, string, error)
OAuthGetAccessToken get the access token of a user ed25519 is optional, only use it when you want to sign OAuth access token locally
func PayWithdrawalFee ¶ added in v2.0.3
func PostAcknowledgements ¶
func PostAcknowledgements(ctx context.Context, requests []*ReceiptAcknowledgementRequest, clientId, sessionId, secret string) error
func PostMessage ¶
func PostMessages ¶
func PostMessages(ctx context.Context, messages []*MessageRequest, clientId, sessionId, secret string) error
func PrivateKeyToCurve25519 ¶
func PrivateKeyToCurve25519(curve25519Private *[32]byte, privateKey ed25519.PrivateKey)
func PublicKeyToCurve25519 ¶
func RequestWithId ¶
func SchemeApps ¶ added in v2.0.2
SchemeApps scheme of an app
appID required, userID of an app action optional, action about this scheme, default is "open" params optional, parameters of any name or type can be passed when opening the bot homepage to facilitate the development of features like invitation codes, visitor tracking, etc
func SchemeConversations ¶ added in v2.0.2
SchemeConversations scheme of a conversation
userID optional, for user conversation only, if there's not conversation with the user, messenger will create the conversation first
https://developers.mixin.one/docs/schema#open-an-conversation
func SchemePay ¶ added in v2.0.2
SchemePay scheme of a pay
assetId required recipientId required, receiver's user id amount require, transfer amount traceId optional, UUID, prevent duplicate payment memo optional, transaction memo
https://developers.mixin.one/docs/schema#invoke-payment-page
func SchemeSend ¶ added in v2.0.2
func SchemeSend(category SendSchemeCategory, data []byte, conversationID string) string
SchemeSend scheme of a share
category required, category of shared content data required, shared content conversationID optional, If you specify conversation and it is the conversation of the user's current session, the confirmation box shown above will appear, the message will be sent after the user clicks the confirmation; if the conversation is not specified or is not the conversation of the current session, an interface where the user chooses which session to share with will show up.
func SchemeSnapshots ¶ added in v2.0.2
SchemeSnapshots scheme of a snapshot
snapshotId required if no traceId traceId required if no snapshotId
https://developers.mixin.one/docs/schema#transfer-details-interface
func SchemeTransfer ¶ added in v2.0.2
SchemeTransfer scheme of a transfer
userId required
https://developers.mixin.one/docs/schema#invoke-transfer-page
func SchemeUsers ¶ added in v2.0.2
SchemeUsers scheme of a user
userId required
https://developers.mixin.one/docs/schema#popups-user-profile
func SetBaseUri ¶
func SetBaseUri(base string)
func SetBlazeUri ¶
func SetBlazeUri(blaze string)
func SetUserAgent ¶ added in v2.0.8
func SetUserAgent(ua string)
func SignAuthenticationToken ¶
func SignOauthAccessToken ¶
func SimpleRequest ¶
func TIPBodyForSequencerRegister ¶ added in v2.0.3
func TIPBodyForVerify ¶
func TIPMigrateBody ¶
func TipBodyForAddressAdd ¶
func TipBodyForTransfer ¶
func UniqueConversationId ¶
func UniqueObjectId ¶
func UnlockMultisig ¶
func UpdateTipPin ¶
func UuidFromBytes ¶
func UuidFromString ¶
func WithAPIKey ¶
func WithAPIKey(userId, sessionId, p string)
Types ¶
type Address ¶
type Address struct { AddressId string `json:"address_id"` AssetId string `json:"asset_id"` Label string `json:"label"` Destination string `json:"destination"` Tag string `json:"tag"` Fee string `json:"fee"` Dust string `json:"dust"` UpdatedAt string `json:"updated_at"` }
func CreateAddress ¶
func GetAddressesByAssetId ¶
type AddressInput ¶
type App ¶
type App struct { Type string `json:"type"` AppId string `json:"app_id"` AppNumber string `json:"app_number"` RedirectURI string `json:"redirect_uri"` HomeURI string `json:"home_uri"` Name string `json:"name"` IconURL string `json:"icon_url"` Description string `json:"description"` Capabilities []string `json:"capabilities"` ResourcePatterns []string `json:"resource_patterns"` Category string `json:"category"` CreatorId string `json:"creator_id"` UpdatedAt time.Time `json:"updated_at"` IsVerified bool `json:"is_verified"` }
type AppButtonView ¶
type Asset ¶
type Asset struct { Type string `json:"type"` AssetID string `json:"asset_id"` ChainID string `json:"chain_id"` AssetKey string `json:"asset_key"` Precision int `json:"precision"` KernelAssetId string `json:"kernel_asset_id"` Symbol string `json:"symbol"` Name string `json:"name"` IconURL string `json:"icon_url"` Amount string `json:"amount"` PriceBTC string `json:"price_btc"` PriceUSD string `json:"price_usd"` ChangeBTC string `json:"change_btc"` ChangeUSD string `json:"change_usd"` Confirmations int64 `json:"confirmations"` Fee string `json:"fee"` Reserve string `json:"reserve"` SnapshotsCount int64 `json:"snapshots_count"` Capitalization float64 `json:"capitalization"` Liquidity string `json:"liquidity"` }
type AssetTicker ¶ added in v2.0.5
type AssetTicker struct { Type string `json:"type"` PriceBTC string `json:"price_btc"` PriceUSD string `json:"price_usd"` }
func ReadAssetTicker ¶ added in v2.0.5
func ReadAssetTicker(ctx context.Context, assetId string) (*AssetTicker, error)
type Attachment ¶
type Attachment struct { Type string `json:"type"` AttachmentId string `json:"attachment_id"` ViewURL string `json:"view_url"` UploadUrl string `json:"upload_url"` }
func AttachmentShow ¶
func AttachmentShow(ctx context.Context, uid, sid, key, id string) (*Attachment, error)
func CreateAttachment ¶
func CreateAttachment(ctx context.Context, uid, sid, key string) (*Attachment, error)
type Authenticator ¶
func NewAuthenticator ¶
func NewAuthenticator(uid, sid, privateKey string) *Authenticator
type BlazeClient ¶
type BlazeClient struct {
// contains filtered or unexported fields
}
func NewBlazeClient ¶
func NewBlazeClient(uid, sid, key string) *BlazeClient
func (*BlazeClient) Loop ¶
func (b *BlazeClient) Loop(ctx context.Context, listener BlazeListener) error
func (*BlazeClient) SendAppButton ¶
func (b *BlazeClient) SendAppButton(ctx context.Context, conversationId, recipientId, label, action, color string) error
func (*BlazeClient) SendAppCard ¶
func (b *BlazeClient) SendAppCard(ctx context.Context, conversationId, recipientId, title, description, action, iconUrl string) error
func (*BlazeClient) SendContact ¶
func (b *BlazeClient) SendContact(ctx context.Context, conversationId, recipientId, contactId string) error
func (*BlazeClient) SendGroupAppButton ¶
func (b *BlazeClient) SendGroupAppButton(ctx context.Context, conversationId, recipientId string, buttons []*AppButtonView) error
func (*BlazeClient) SendMessage ¶
func (b *BlazeClient) SendMessage(ctx context.Context, conversationId, recipientId, messageId, category, content, representativeId string) error
func (*BlazeClient) SendPlainText ¶
func (b *BlazeClient) SendPlainText(ctx context.Context, msg MessageView, content string) error
func (*BlazeClient) SendPost ¶
func (b *BlazeClient) SendPost(ctx context.Context, msg MessageView, content string) error
func (*BlazeClient) SendRecallMessage ¶
func (b *BlazeClient) SendRecallMessage(ctx context.Context, conversationId, recipientId, recallMessageId string) error
func (*BlazeClient) SetupDailer ¶
func (b *BlazeClient) SetupDailer(dailer *websocket.Dialer)
type BlazeListener ¶
type BlazeMessage ¶
type Code ¶
type Code interface { *MultisigRequest | *User | *Conversation }
type Conversation ¶
type Conversation struct { ConversationId string `json:"conversation_id"` CreatorId string `json:"creator_id"` Category string `json:"category"` Name string `json:"name"` IconURL string `json:"icon_url"` Announcement string `json:"announcement"` CreatedAt time.Time `json:"created_at"` Participants []Participant `json:"participants"` ParticipantSessions []ParticipantSessionView `json:"participant_sessions"` }
func ConversationShow ¶
func ConversationShow(ctx context.Context, conversationId, uid, sid, key string) (*Conversation, error)
func ConversationShowByToken ¶ added in v2.0.5
func CreateContactConversation ¶
func CreateContactConversation(ctx context.Context, participantID, uid, sid, key string) (*Conversation, error)
func CreateConversation ¶
func CreateConversation(ctx context.Context, category, conversationId string, name, announcement string, participants []Participant, uid, sid, key string) (*Conversation, error)
func JoinConversation ¶
func JoinConversation(ctx context.Context, conversationId, uid, sid, key string) (*Conversation, error)
type DepositEntryView ¶ added in v2.0.5
type DepositEntryView struct { Type string `json:"type"` EntryID string `json:"entry_id"` Threshold int64 `json:"threshold"` Members []string `json:"members"` Destination string `json:"destination"` Tag string `json:"tag"` SafeSignature string `json:"signature"` ChainID string `json:"chain_id"` IsPrimary bool `json:"is_primary"` }
func CreateDepositEntry ¶ added in v2.0.5
type Error ¶
type Error struct { Status int `json:"status"` Code int `json:"code"` Description string `json:"description"` Extra interface{} `json:"extra,omitempty"` // contains filtered or unexported fields }
func AuthorizationError ¶
func BadDataError ¶
func ForbiddenError ¶
type GhostKeyRequest ¶
type GhostKeys ¶
type GhostKeys struct { Type string `json:"type"` Mask string `json:"mask"` Keys []string `json:"keys"` }
func RequestSafeGhostKeys ¶ added in v2.0.1
type ImageMessagePayload ¶
type KernelDepositView ¶ added in v2.0.5
type KernelTransactionRequestCreateRequest ¶ added in v2.0.3
type LiveMessagePayload ¶
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"` QuoteMessageId string `json:"quote_message_id"` }
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"` }
type MixAddress ¶ added in v2.0.3
func NewMainnetMixAddress ¶ added in v2.0.3
func NewMainnetMixAddress(members []string, threshold byte) *MixAddress
func NewMixAddressFromString ¶ added in v2.0.3
func NewMixAddressFromString(s string) (*MixAddress, error)
func NewUUIDMixAddress ¶ added in v2.0.3
func NewUUIDMixAddress(members []string, threshold byte) *MixAddress
func (*MixAddress) Members ¶ added in v2.0.3
func (ma *MixAddress) Members() []string
func (*MixAddress) RequestOrGenerateGhostKeys ¶ added in v2.0.3
func (*MixAddress) String ¶ added in v2.0.3
func (ma *MixAddress) String() string
type MultisigRequest ¶
type MultisigRequest struct { Type string `json:"type"` RequestId string `json:"request_id"` UserId string `json:"user_id"` AssetId string `json:"asset_id"` Amount string `json:"amount"` Threshold int64 `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 string `json:"transaction_hash"` RawTransaction string `json:"raw_transaction"` CreatedAt time.Time `json:"created_at"` CodeId string `json:"code_id"` }
func CreateMultisig ¶
func CreateMultisig(ctx context.Context, action, raw string, uid, sid, sessionKey string) (*MultisigRequest, error)
CreateMultisig create a multisigs request which action is `unlock` or `sign`
func ReadMultisigByCode ¶
func ReadMultisigByCode(ctx context.Context, codeId string) (*MultisigRequest, error)
func SignMultisig ¶
type MultisigUTXO ¶
type MultisigUTXO struct { Type string `json:"type"` UserId string `json:"user_id"` UTXOId string `json:"utxo_id"` AssetId string `json:"asset_id"` TransactionHash string `json:"transaction_hash"` OutputIndex int64 `json:"output_index"` Amount string `json:"amount"` Threshold int64 `json:"threshold"` Members []string `json:"members"` Memo string `json:"memo"` State string `json:"state"` Sender string `json:"sender"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` SignedBy string `json:"signed_by"` SignedTx string `json:"signed_tx"` }
func ReadMultisigs ¶
func ReadMultisigs(ctx context.Context, limit int, offset, membersHash, threshold, state, uid, sid, sessionKey string) ([]*MultisigUTXO, error)
state: spent, unspent, signed
func ReadMultisigsLegacy ¶
type NetworkChain ¶
type NetworkChain struct { Type string `json:"type"` ChainId string `json:"chain_id"` Name string `json:"name"` Symbol string `json:"symbol"` IconURL string `json:"icon_url"` ManagedBlockHeight int64 `json:"managed_block_height"` DepositBlockHeight int64 `json:"deposit_block_height"` ExternalBlockHeight int64 `json:"external_block_height"` Threshold int `json:"threshold"` WithdrawalTimestamp time.Time `json:"withdrawal_timestamp"` WithdrawalPendingCount int64 `json:"withdrawal_pending_count"` WithdrawalFee string `json:"withdrawal_fee"` IsSynchronized bool `json:"is_synchronized"` }
func ReadNetworkChainById ¶
func ReadNetworkChainById(ctx context.Context, chainId string) (*NetworkChain, error)
func ReadNetworkChains ¶
func ReadNetworkChains(ctx context.Context, chainId string) ([]*NetworkChain, error)
type Output ¶ added in v2.0.3
type Output struct { Type string `json:"type"` OutputID string `json:"output_id"` TransactionHash string `json:"transaction_hash"` OutputIndex uint `json:"output_index"` AssetId string `json:"asset_id"` KernelAssetId string `json:"kernel_asset_id"` Amount string `json:"amount"` Mask string `json:"mask"` Keys []string `json:"keys"` SendersHash string `json:"senders_hash"` SendersThreshold int64 `json:"senders_threshold"` Senders []string `json:"senders"` ReceiversHash string `json:"receivers_hash"` ReceiversThreshold int64 `json:"receivers_threshold"` Receivers []string `json:"receivers"` Extra string `json:"extra"` State string `json:"state"` Sequence int64 `json:"sequence"` CreatedAt time.Time `json:"created_at"` Signers []string `json:"signers"` SignedBy string `json:"signed_by"` Deposit *KernelDepositView `json:"deposit,omitempty"` RequestId string `json:"request_id,omitempty"` }
func ListOutputs ¶ added in v2.0.5
type Participant ¶
type ParticipantSessionView ¶
type RecallMessagePayload ¶
type RecallMessagePayload struct {
MessageId string `json:"message_id"`
}
type SafeDepositView ¶ added in v2.0.3
type SafeSnapshot ¶ added in v2.0.3
type SafeSnapshot struct { Type string `json:"type"` SnapshotID string `json:"snapshot_id"` UserID string `json:"user_id"` OpponentID string `json:"opponent_id"` TransactionHash string `json:"transaction_hash"` AssetID string `json:"asset_id"` KernelAssetID string `json:"kernel_asset_id"` Amount string `json:"amount"` Memo string `json:"memo"` RequestId string `json:"request_id"` CreatedAt time.Time `json:"created_at"` Deposit *SafeDepositView `json:"deposit,omitempty"` Withdrawal *SafeWithdrawalView `json:"withdrawal,omitempty"` }
func SafeSnapshotById ¶ added in v2.0.3
func SafeSnapshotByToken ¶ added in v2.0.3
func SafeSnapshots ¶ added in v2.0.3
func SafeSnapshotsByToken ¶ added in v2.0.3
type SafeUser ¶ added in v2.0.3
type SafeUser struct { // this is the app or bot uuid of messenger api // user id can never change UserId string // session id could be rotated by the app owner SessionId string // session private key rotates with the session id // this key is used for all authentication of messenger api SessionPrivateKey string // server public key rotates with the session id // server public key is used to verify signature of server response // could also be used to do ecdh with session private key ServerPublicKey string // spend private key is used to query or send money // this is the mixin kernel spend private key // spend private key can never change SpendPrivateKey string }
type SafeWithdrawalView ¶ added in v2.0.3
type SendSchemeCategory ¶ added in v2.0.2
type SendSchemeCategory = string
const ( SendSchemeCategoryText SendSchemeCategory = "text" SendSchemeCategoryImage SendSchemeCategory = "image" SendSchemeCategoryContact SendSchemeCategory = "contact" SendSchemeCategoryAppCard SendSchemeCategory = "app_card" SendSchemeCategoryLive SendSchemeCategory = "live" SendSchemeCategoryPost SendSchemeCategory = "post" )
type SequencerTransactionRequest ¶ added in v2.0.3
type SequencerTransactionRequest struct { RequestID string `json:"request_id"` TransactionHash string `json:"transaction_hash"` Asset string `json:"asset"` Amount string `json:"amount"` Extra string `json:"extra"` State string `json:"state"` RawTransaction string `json:"raw_transaction"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` SnapshotID string `json:"snapshot_id"` SnapshotHash string `json:"snapshot_hash"` SnapshotAt time.Time `json:"snapshot_at"` Views []string `json:"views"` }
func CreateObjectStorageTransaction ¶ added in v2.0.8
func GetTransactionById ¶ added in v2.0.3
func GetTransactionById(ctx context.Context, requestId string) (*SequencerTransactionRequest, error)
func SendTransaction ¶ added in v2.0.3
func SendTransaction(ctx context.Context, assetId string, recipients []*TransactionRecipient, traceId string, extra []byte, references []string, u *SafeUser) (*SequencerTransactionRequest, error)
func SendWithdrawal ¶ added in v2.0.3
type TipNodeData ¶
type TipNodeData struct { Commitments []string `json:"commitments"` Identity string `json:"identity"` }
func GetTipNodeByPath ¶
func GetTipNodeByPath(ctx context.Context, path string) (*TipNodeData, error)
func GetTipNodeByPathWithRequestId ¶
func GetTipNodeByPathWithRequestId(ctx context.Context, path, requestId string) (*TipNodeData, error)
type TransactionRecipient ¶ added in v2.0.3
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 Turn ¶
type User ¶
type User struct { UserId string `json:"user_id"` SessionId string `json:"session_id"` PinToken string `json:"pin_token"` PINTokenBase64 string `json:"pin_token_base64"` IdentityNumber string `json:"identity_number"` HasSafe bool `json:"has_safe"` TIPKeyBase64 string `json:"tip_key_base64"` Phone string `json:"phone"` FullName string `json:"full_name"` AvatarURL string `json:"avatar_url"` DeviceStatus string `json:"device_status"` CreatedAt string `json:"created_at"` }
func CreateUser ¶
func CreateUserSimple ¶
func RegisterSafe ¶ added in v2.0.3
func RegisterSafe(ctx context.Context, userId, publicKey, seed string, uid, sid, sessionKey, tipPin, pinToken string) (*User, error)
If you want to register safe user, you need to call UpdateTipPin upgrade TIP PIN first.
func Relationship ¶
func RequestUserMe ¶ added in v2.0.3
func SearchUser ¶
func UpdatePreference ¶
func UpdateUserMe ¶
func UserMeWithRequestID ¶
type UserSession ¶
type UserSession struct { UserId string `json:"user_id"` SessionId string `json:"session_id"` PublicKey string `json:"public_key"` Platform string `json:"platform"` }
func FetchUserSession ¶
Source Files ¶
- address.go
- aes.go
- app.go
- asset.go
- attachment.go
- auth.go
- authenticator.go
- blaze.go
- chain.go
- code.go
- conversation.go
- crypto.go
- error.go
- fiats.go
- kernel.go
- message.go
- mix.go
- multisigs.go
- object.go
- output.go
- pin.go
- request.go
- safe.go
- safe_deposit_entries.go
- safe_user.go
- session.go
- snapshot.go
- tip.go
- transaction.go
- transport.go
- turn.go
- url_scheme.go
- user.go
- utils.go
- uuid.go
- withdrawal.go