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, user *SafeUser, method string, params ...interface{}) ([]byte, error)
- func CancelMultisig(ctx context.Context, id string, su *SafeUser) error
- func Chunked(source []interface{}, size int) [][]interface{}
- func DecryptMessageData(data string, sessionId, private string) (string, error)
- func DeleteAddress(ctx context.Context, addressId string, user *SafeUser) error
- func EncryptEd25519PIN(pin string, iterator uint64, current *SafeUser) (string, error)
- func EncryptMessageData(data string, sessions []*Session, privateKey string) (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 PostAcknowledgements(ctx context.Context, requests []*ReceiptAcknowledgementRequest, user *SafeUser) error
- func PostMessage(ctx context.Context, ...) error
- func PostMessageRequest(ctx context.Context, message *MessageRequest, user *SafeUser) error
- func PostMessages(ctx context.Context, messages []*MessageRequest, user *SafeUser) 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 RequestGhostRecipients(ctx context.Context, recipients []*TransactionRecipient, u *SafeUser) (map[int]*GhostKeys, 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(method, uri, body string, su *SafeUser) (string, error)
- func SignAuthenticationTokenWithoutBody(method, uri string, user *SafeUser) (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, su *SafeUser) error
- func UpdatePin(ctx context.Context, oldEncryptedPin, encryptedPin string, su *SafeUser) error
- func UpdateTipPin(ctx context.Context, pin, pubTip string, su *SafeUser) 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 AssetFee
- type AssetNetwork
- 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 string, user *SafeUser) (*Conversation, error)
- func ConversationShowByToken(ctx context.Context, conversationId string, accessToken string) (*Conversation, error)
- func CreateContactConversation(ctx context.Context, participantID string, user *SafeUser) (*Conversation, error)
- func CreateConversation(ctx context.Context, category, conversationId string, ...) (*Conversation, error)
- func JoinConversation(ctx context.Context, conversationId string, user *SafeUser) (*Conversation, error)
- type DepositEntryView
- type Error
- func AuthorizationError(ctx context.Context) Error
- func BadDataError(ctx context.Context) Error
- func BlazeServerError(ctx context.Context, err error) Error
- func ForbiddenError(ctx context.Context) Error
- func NotFoundError(ctx context.Context) Error
- func ServerError(ctx context.Context, err error) Error
- type Fiat
- type GhostKeyRequest
- type GhostKeys
- type ImageMessagePayload
- type InscriptionDeploy
- type InscriptionDistribute
- type InscriptionInscribe
- type InscriptionOccupy
- type KernelDepositView
- type KernelTransactionRequestCreateRequest
- type LegacySnapshot
- func NetworkSnapshot(ctx context.Context, snapshotId string) (*LegacySnapshot, error)
- func NetworkSnapshotByToken(ctx context.Context, snapshotId, accessToken string) (*LegacySnapshot, error)
- func SnapshotById(ctx context.Context, snapshotId string, uid, sid, sessionKey string) (*LegacySnapshot, error)
- func SnapshotByToken(ctx context.Context, snapshotId string, accessToken string) (*LegacySnapshot, error)
- func SnapshotByTraceId(ctx context.Context, traceId string, uid, sid, sessionKey string) (*LegacySnapshot, error)
- func Snapshots(ctx context.Context, limit int, ...) ([]*LegacySnapshot, error)
- func SnapshotsByToken(ctx context.Context, limit int, offset, assetId, order, accessToken string) ([]*LegacySnapshot, error)
- type LegacySnapshotShort
- type LiveMessagePayload
- type MessageRequest
- type MessageView
- type MixAddress
- type MultisigRequest
- type MultisigUTXO
- type NetworkChain
- type Output
- type Participant
- type ParticipantSessionView
- type RecallMessagePayload
- type ReceiptAcknowledgementRequest
- type SafeDepositPending
- type SafeDepositView
- type SafeSnapshot
- func SafeSnapshotById(ctx context.Context, snapshotId string, su *SafeUser) (*SafeSnapshot, error)
- func SafeSnapshotByToken(ctx context.Context, snapshotId string, accessToken string) (*SafeSnapshot, error)
- func SafeSnapshots(ctx context.Context, limit int, app, assetId, opponent, offset string, ...) ([]*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, references []string, ...) (*SequencerTransactionRequest, error)
- func GetTransactionById(ctx context.Context, requestId string) (*SequencerTransactionRequest, error)
- func GetTransactionByIdWithSafeUser(ctx context.Context, requestId string, su *SafeUser) (*SequencerTransactionRequest, error)
- func SendRawTransaction(ctx context.Context, requests []*KernelTransactionRequestCreateRequest, ...) ([]*SequencerTransactionRequest, error)
- func SendTransaction(ctx context.Context, assetId string, recipients []*TransactionRecipient, ...) (*SequencerTransactionRequest, error)
- func SendTransactionWithOutput(ctx context.Context, assetId string, recipients []*TransactionRecipient, ...) (*SequencerTransactionRequest, error)
- func SendTransferTransaction(ctx context.Context, assetId, receiver, amount, traceId string, extra []byte, ...) (*SequencerTransactionRequest, error)
- func SendWithdrawal(ctx context.Context, assetId, destination, tag, amount, traceId string, ...) ([]*SequencerTransactionRequest, error)
- func VerifyRawTransaction(ctx context.Context, requests []*KernelTransactionRequestCreateRequest, ...) ([]*SequencerTransactionRequest, error)
- type Session
- type TipNodeData
- type TransactionReceiver
- type TransactionRecipient
- type TransferView
- type Turn
- type User
- func CreateUser(ctx context.Context, sessionSecret, fullName string, su *SafeUser) (*User, error)
- func CreateUserSimple(ctx context.Context, sessionSecret, fullName string) (*User, error)
- func GetUser(ctx context.Context, userId string, su *SafeUser) (*User, error)
- func RegisterSafe(ctx context.Context, userId, seed string, su *SafeUser) (*User, error)
- func Relationship(ctx context.Context, userId, action string, su *SafeUser) (*User, error)
- func RequestUserMe(ctx context.Context, su *SafeUser) (*User, error)
- func SearchUser(ctx context.Context, mixinId string, su *SafeUser) (*User, error)
- func UpdatePreference(ctx context.Context, messageSource, conversationSource, currency string, ...) (*User, error)
- func UpdateUserMe(ctx context.Context, fullName, avatarBase64 string, su *SafeUser) (*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, pin string, user *SafeUser) (*User, error)
- func VerifyPINTip(ctx context.Context, su *SafeUser) (*User, error)
- type UserSession
- type UtxoError
- type WithdrawalFee
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 ( InscriptionModeInstant = 1 InscriptionModeDone = 2 )
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" )
var Nil = uuid.Nil
Functions ¶
func AesDecrypt ¶
func AesEncrypt ¶
func AssetBalance ¶
func CallKernelRPC ¶
func DecryptMessageData ¶
func DeleteAddress ¶
func EncryptEd25519PIN ¶
func EncryptMessageData ¶
func GenerateUserChecksum ¶
func GetChainName ¶
func GetFullChains ¶
func HashMembers ¶
func MakeUniqueStringSlice ¶
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 PostAcknowledgements ¶
func PostAcknowledgements(ctx context.Context, requests []*ReceiptAcknowledgementRequest, user *SafeUser) error
func PostMessage ¶
func PostMessageRequest ¶ added in v3.4.0
func PostMessageRequest(ctx context.Context, message *MessageRequest, user *SafeUser) error
func PostMessages ¶
func PostMessages(ctx context.Context, messages []*MessageRequest, user *SafeUser) error
func PrivateKeyToCurve25519 ¶
func PrivateKeyToCurve25519(curve25519Private *[32]byte, privateKey ed25519.PrivateKey)
func PublicKeyToCurve25519 ¶
func RequestGhostRecipients ¶ added in v3.4.7
func RequestWithId ¶
func SchemeApps ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
SchemeTransfer scheme of a transfer
userId required
https://developers.mixin.one/docs/schema#invoke-transfer-page
func SchemeUsers ¶
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 ¶
func SetUserAgent(ua string)
func SignAuthenticationToken ¶
func SignOauthAccessToken ¶
func SimpleRequest ¶
func TIPBodyForVerify ¶
func TIPMigrateBody ¶
func TipBodyForAddressAdd ¶
func TipBodyForTransfer ¶
func UniqueConversationId ¶
func UniqueObjectId ¶
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 AssetFee ¶ added in v3.4.5
type AssetNetwork ¶ added in v3.4.2
type AssetNetwork struct { AssetID string `json:"asset_id"` ChainID string `json:"chain_id"` FeeAssetID string `json:"fee_asset_id"` Symbol string `json:"symbol"` Name string `json:"name"` IconURL string `json:"icon_url"` Balance string `json:"balance"` Destination string `json:"destination"` Tag string `json:"tag"` PriceBTC string `json:"price_btc"` PriceUSD string `json:"price_usd"` ChangeBTC string `json:"change_btc"` ChangeUSD string `json:"change_usd"` AssetKey string `json:"asset_key"` Precision int `json:"precision"` MixinID string `json:"mixin_id"` KernelAssetID string `json:"kernel_asset_id"` Reserve string `json:"reserve"` Dust string `json:"dust"` Confirmations int `json:"confirmations"` Capitalization float64 `json:"capitalization"` Liquidity string `json:"liquidity"` PriceUpdatedAt string `json:"price_updated_at"` WithdrawalMemoPossibility string `json:"withdrawal_memo_possibility"` }
func ReadNetworkAssets ¶ added in v3.4.2
func ReadNetworkAssets(ctx context.Context) ([]*AssetNetwork, error)
func ReadNetworkAssetsTop ¶ added in v3.4.3
func ReadNetworkAssetsTop(ctx context.Context) ([]*AssetNetwork, error)
type AssetTicker ¶
type AssetTicker struct { Type string `json:"type"` PriceBTC string `json:"price_btc"` PriceUSD string `json:"price_usd"` }
func ReadAssetTicker ¶
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 CreateAttachment ¶
func CreateAttachment(ctx context.Context, user *SafeUser) (*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 ConversationShowByToken ¶
func CreateConversation ¶
func CreateConversation(ctx context.Context, category, conversationId string, name, announcement string, participants []Participant, user *SafeUser) (*Conversation, error)
func JoinConversation ¶
type DepositEntryView ¶
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 ¶
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 ¶
func NotFoundError ¶ added in v3.4.4
type GhostKeyRequest ¶
type GhostKeys ¶
type GhostKeys struct { Type string `json:"type"` Mask string `json:"mask"` Keys []string `json:"keys"` }
func RequestSafeGhostKeys ¶
type ImageMessagePayload ¶
type InscriptionDeploy ¶ added in v3.4.8
type InscriptionDeploy struct { // the version must be 1 Version uint8 `json:"version"` // 1 distribute tokens per inscription // 2 distribute tokens after inscription progress done Mode uint8 `json:"mode"` // supply is the total supply of all tokens // unit is the amount of tokens per inscription // // if supply is 1,000,000,000 and unit is 1,000,000, // then there should be 1,000 inscription operations // 1 inscription represents 1 collectible, so there will be 1,000 NFTs Unit string `json:"unit"` Supply string `json:"supply"` // the token symbol and name are required and must be valid UTF8 Symbol string `json:"symbol"` Name string `json:"name"` // the icon must be in valid data URI scheme // e.g. image/webp;base64,IVVB=== Icon string `json:"icon"` // only needed if the deployer wants to limit the NFT contents of all // inscriptions, base64 of all NFT blake3 checksums, and all checksums // must be different from each other Checksum string `json:"checksum,omitempty"` // ratio of each inscribed tokens will be kept in treasury // the treasury tokens will be distributed to the recipient MIX address // at the same time as defined by the mode // // For MAO, the ratio will be 0.9, and each collectible will only cost // 10% of the unit tokens, so only the inscribers have NFTs, but not // the treasury tokens, however they can occupy a vacant NFT. Treasury *struct { Ratio string `json:"ratio"` Recipient string `json:"recipient"` } `json:"treasury,omitempty"` }
type InscriptionDistribute ¶ added in v3.4.8
type InscriptionInscribe ¶ added in v3.4.8
type InscriptionInscribe struct { // operation must be inscribe Operation string `json:"operation"` // Recipient can only be MIX address, not ghost keys, because // otherwise the keys may be used by others, then redeemed invalid Recipient string `json:"recipient"` // data URI scheme // application/octet-stream;key=fingerprint;base64,iVBO== // image/webp;trait=one;base64,iVBO== // text/plain;charset=UTF-8,cedric.mao // text/plain;charset=UTF-8;base64,iii== Content string `json:"content,omitempty"` }
type InscriptionOccupy ¶ added in v3.4.8
type KernelDepositView ¶
type LegacySnapshot ¶ added in v3.2.0
type LegacySnapshot struct { Type string `json:"type"` SnapshotId string `json:"snapshot_id"` AssetId string `json:"asset_id"` Amount string `json:"amount"` OpeningBalance string `json:"opening_balance"` ClosingBalance string `json:"closing_balance"` TransactionHash string `json:"transaction_hash,omitempty"` SnapshotHash string `json:"snapshot_hash,omitempty"` SnapshotAt time.Time `json:"snapshot_at,omitempty"` CreatedAt time.Time `json:"created_at"` // deposit & withdrawal OutputIndex int64 `json:"output_index,omitempty"` // deposit Sender string `json:"sender,omitempty"` // deposit OpponentId string `json:"opponent_id,omitempty"` // transfer TraceId string `json:"trace_id,omitempty"` // transfer & raw & withdrawal Memo string `json:"memo,omitempty"` // transfer & raw & withdrawal OpponentKey string `json:"opponent_key"` // raw OpponentMultisigReceivers []string `json:"opponent_receivers"` // raw OpponentMultisigThreshold int64 `json:"opponent_threshold"` // raw State string `json:"state"` // raw & withdrawal // withdrawal Receiver string `json:"receiver,omitempty"` Confirmations int64 `json:"confirmations,omitempty"` Fee struct { Amount string `json:"amount"` AssetId string `json:"asset_id"` } `json:"fee,omitempty"` }
func NetworkSnapshot ¶ added in v3.2.0
func NetworkSnapshot(ctx context.Context, snapshotId string) (*LegacySnapshot, error)
func NetworkSnapshotByToken ¶ added in v3.2.0
func NetworkSnapshotByToken(ctx context.Context, snapshotId, accessToken string) (*LegacySnapshot, error)
func SnapshotById ¶ added in v3.2.0
func SnapshotByToken ¶ added in v3.2.0
func SnapshotByTraceId ¶ added in v3.2.0
func SnapshotsByToken ¶ added in v3.2.0
type LegacySnapshotShort ¶ added in v3.2.0
type LegacySnapshotShort struct { Type string `json:"type"` SnapshotId string `json:"snapshot_id"` Source string `json:"source"` Amount string `json:"amount"` Asset struct { Type string `json:"type"` AssetId string `json:"asset_id"` ChainId string `json:"chain_id"` MixinId string `json:"mixin_id"` Symbol string `json:"symbol"` Name string `json:"name"` AssetKey string `json:"asset_key"` IconUrl string `json:"icon_url"` } `json:"asset"` State string `json:"state"` SnapshotHash string `json:"snapshot_hash"` CreatedAt time.Time `json:"created_at"` TraceId string `json:"trace_id"` OpponentId string `json:"opponent_id"` Memo string `json:"data"` }
func NetworkSnapshots ¶ added in v3.2.0
func NetworkSnapshotsByToken ¶ added in v3.2.0
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"` DataBase64 string `json:"data_base64"` 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"` DataBase64 string `json:"data_base64"` 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 ¶
func NewMainnetMixAddress ¶
func NewMainnetMixAddress(members []string, threshold byte) *MixAddress
func NewMixAddressFromString ¶
func NewMixAddressFromString(s string) (*MixAddress, error)
func NewUUIDMixAddress ¶
func NewUUIDMixAddress(members []string, threshold byte) *MixAddress
func (*MixAddress) Members ¶
func (ma *MixAddress) Members() []string
func (*MixAddress) RequestOrGenerateGhostKeys ¶
func (*MixAddress) String ¶
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, su *SafeUser) (*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 string, su *SafeUser) ([]*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 ¶
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 ¶
type Participant ¶
type ParticipantSessionView ¶
type RecallMessagePayload ¶
type RecallMessagePayload struct {
MessageId string `json:"message_id"`
}
type SafeDepositPending ¶ added in v3.4.2
type SafeDepositPending struct { Amount string `json:"amount"` AssetID string `json:"asset_id"` AssetKey string `json:"asset_key"` BlockHash string `json:"block_hash"` BlockNumber int `json:"block_number"` ChainID string `json:"chain_id"` Confirmations int `json:"confirmations"` CreatedAt string `json:"created_at"` DepositID string `json:"deposit_id"` Destination string `json:"destination"` Extra string `json:"extra"` KernelAssetID string `json:"kernel_asset_id"` OutputIndex int `json:"output_index"` Sender string `json:"sender"` State string `json:"state"` Tag string `json:"tag"` Threshold int `json:"threshold"` TransactionHash string `json:"transaction_hash"` UpdatedAt string `json:"updated_at"` }
func FetchSafeDeposit ¶ added in v3.4.2
func FetchSafeDeposit(ctx context.Context) ([]*SafeDepositPending, error)
type SafeDepositView ¶
type SafeSnapshot ¶
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 ¶
func SafeSnapshotByToken ¶
func SafeSnapshots ¶
func SafeSnapshotsByToken ¶
type SafeUser ¶
type SafeUser struct { // this is the app children user uuid or the app 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 // hex // 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 // hex // 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 // hex }
type SafeWithdrawalView ¶
type SendSchemeCategory ¶
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 ¶
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"` Receivers []*TransactionReceiver `json:"receivers"` Senders []string `json:"senders"` SendersHash string `json:"senders_hash"` SendersThreshold uint8 `json:"senders_threshold"` Signers []string `json:"signers"` 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 GetTransactionById ¶
func GetTransactionById(ctx context.Context, requestId string) (*SequencerTransactionRequest, error)
func GetTransactionByIdWithSafeUser ¶ added in v3.3.0
func SendRawTransaction ¶ added in v3.4.5
func SendRawTransaction(ctx context.Context, requests []*KernelTransactionRequestCreateRequest, u *SafeUser) ([]*SequencerTransactionRequest, error)
func SendTransaction ¶
func SendTransaction(ctx context.Context, assetId string, recipients []*TransactionRecipient, traceId string, extra []byte, references []string, u *SafeUser) (*SequencerTransactionRequest, error)
func SendTransactionWithOutput ¶ added in v3.3.0
func SendTransferTransaction ¶ added in v3.1.1
func SendWithdrawal ¶
func SendWithdrawal(ctx context.Context, assetId, destination, tag, amount, traceId string, preferAssetFeeOverChainFee bool, memo string, u *SafeUser) ([]*SequencerTransactionRequest, error)
SendWithdrawal sends a withdrawal request to the Mixin Network. preferAssetFeeOverChainFee is used to determine whether to use the asset fee or the chain fee.
func VerifyRawTransaction ¶ added in v3.4.5
func VerifyRawTransaction(ctx context.Context, requests []*KernelTransactionRequestCreateRequest, u *SafeUser) ([]*SequencerTransactionRequest, error)
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 TransactionReceiver ¶ added in v3.3.0
type TransactionRecipient ¶
type TransactionRecipient struct { MixAddress *MixAddress Amount string Destination string Tag string }
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 ¶
If you want to register safe user, you need to call UpdateTipPin upgrade TIP PIN first.
func Relationship ¶
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 ¶
type WithdrawalFee ¶ added in v3.4.6
type WithdrawalFee struct { Type string `json:"type"` AssetId string `json:"asset_id"` Amount string `json:"amount"` }
func RequestWithdrawalFees ¶ added in v3.4.6
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
- inscription.go
- kernel.go
- message.go
- mix.go
- multisigs.go
- network.go
- object.go
- output.go
- pin.go
- request.go
- safe.go
- safe_deposit_entries.go
- safe_deposits.go
- safe_fee.go
- safe_user.go
- session.go
- snapshot.go
- snapshot_legacy.go
- tip.go
- transaction.go
- transport.go
- turn.go
- url_scheme.go
- user.go
- utils.go
- uuid.go
- withdrawal.go