bot

package module
Version: v1.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2021 License: Apache-2.0 Imports: 37 Imported by: 31

README

Installation

go get github.com/MixinNetwork/bot-api-go-client

Quick Start

package main

import (
	"context"
	"crypto/rand"
	"crypto/rsa"
	"crypto/x509"
	"encoding/base64"
	"encoding/pem"
	"fmt"
	"time"

	"github.com/MixinNetwork/bot-api-go-client"
)

const (
	appId         = ""
	appSessionId  = ""
	appPrivateKey = ``
)

func main() {
	ctx := context.Background()
	// Generate Ed25519 key pair.
	pub, privateKey, err := ed25519.GenerateKey(rand.Reader)
	if err != nil {
		return nil, "", err
	}
	sessionSecret := base64.RawURLEncoding.EncodeToString(pub[:])
	// Rigster the user on the Mixin network
	user, err := bot.CreateUser(ctx, sessionSecret, "fullname", appId, appSessionId, appPrivateKey)
	if err != nil {
		fmt.Println(err)
		return
	}
	userSessionKey := base64.RawURLEncoding.EncodeToString(privateKey)
	// encrypt PIN
	encryptedPIN, err := bot.EncryptEd25519PIN(ctx, pin, user.PINTokenBase64, user.SessionId, userSessionKey, uint64(time.Now().UnixNano()))
	if err != nil {
		return err
	}
	fmt.Println(encryptedPIN)
	// Set initial code.
	err = bot.UpdatePin(ctx, "", encryptedPIN, user.UserId, user.SessionId, userSessionKey)
	if err != nil {
		fmt.Println(err)
		return
	}
	//Sign authentication token.
	authenticationToken, err := bot.SignAuthenticationToken(user.UserId, user.SessionId, userSessionKey, "GET", "/assets", "")
	if err != nil {
		fmt.Println(err)
		return
	}
	// Read asset list
	assets, err := bot.AssetList(ctx, authenticationToken)
	if err != nil {
		fmt.Println(err)
		return
	}
	for _, a := range assets {
		fmt.Println(a.AssetId)
	}
}

Fo more examples, see examples

Documentation

Index

Constants

View Source
const (
	MessageCategoryPlainText             = "PLAIN_TEXT"
	MessageCategoryPlainImage            = "PLAIN_IMAGE"
	MessageCategoryPlainData             = "PLAIN_DATA"
	MessageCategoryPlainSticker          = "PLAIN_STICKER"
	MessageCategoryPlainLive             = "PLAIN_LIVE"
	MessageCategoryPlainContact          = "PLAIN_CONTACT"
	MessageCategoryPlainPost             = "PLAIN_POST"
	MessageCategorySystemConversation    = "SYSTEM_CONVERSATION"
	MessageCategorySystemAccountSnapshot = "SYSTEM_ACCOUNT_SNAPSHOT"
	MessageCategoryMessageRecall         = "MESSAGE_RECALL"
	MessageCategoryAppButtonGroup        = "APP_BUTTON_GROUP"
	MessageCategoryAppCard               = "APP_CARD"
)
View Source
const (
	RelationshipActionAdd     = "ADD"
	RelationshipActionUpdate  = "UPDATE"
	RelationshipActionRemove  = "REMOVE"
	RelationshipActionBlock   = "BLOCK"
	RelationshipActionUnblock = "UNBLOCK"
)

Variables

View Source
var (
	DefaultApiHost   = "https://api.mixin.one"
	DefaultBlazeHost = "blaze.mixin.one"

	ZeromeshApiHost   = "https://mixin-api.zeromesh.net"
	ZeromeshBlazeHost = "mixin-blaze.zeromesh.net"
)
View Source
var Nil = uuid.Nil

Functions

func CallMixinRPC added in v1.4.0

func CallMixinRPC(ctx context.Context, method string, params ...interface{}) ([]byte, error)

func CancelMultisig added in v1.2.0

func CancelMultisig(ctx context.Context, id string, uid, sid, sessionKey string) error

func Chunked

func Chunked(source []interface{}, size int) [][]interface{}

func CreateRaw added in v1.2.0

func CreateRaw(ctx context.Context)

func DeleteAddress added in v1.1.5

func DeleteAddress(ctx context.Context, addressId, uid, sid, sessionKey, pin, pinToken string) error

func EncryptEd25519PIN added in v1.2.0

func EncryptEd25519PIN(ctx context.Context, pin, pinTokenBase64, sessionId, privateKey string, iterator uint64) (string, error)

func EncryptPIN

func EncryptPIN(ctx context.Context, pin, pinToken, sessionId, privateKey string, iterator uint64) (string, error)

func HashMembers added in v1.4.0

func HashMembers(ids []string) string

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 added in v1.1.5

func PostAcknowledgements(ctx context.Context, requests []*ReceiptAcknowledgementRequest, clientId, sessionId, secret string) error

func PostMessage

func PostMessage(ctx context.Context, conversationId, recipientId, messageId, category, data string, clientId, sessionId, secret string) error

func PostMessages

func PostMessages(ctx context.Context, messages []*MessageRequest, clientId, sessionId, secret string) error

func PrivateKeyToCurve25519 added in v1.2.0

func PrivateKeyToCurve25519(curve25519Private *[32]byte, privateKey ed25519.PrivateKey)

func PublicKeyToCurve25519 added in v1.2.0

func PublicKeyToCurve25519(publicKey ed25519.PublicKey) ([]byte, error)

func Request

func Request(ctx context.Context, method, path string, body []byte, accessToken string) ([]byte, error)

func RequestWithId added in v1.2.0

func RequestWithId(ctx context.Context, method, path string, body []byte, accessToken, requestID string) ([]byte, error)

func SetBaseUri added in v1.2.0

func SetBaseUri(base string)

func SetBlazeUri added in v1.2.0

func SetBlazeUri(blaze string)

func SignAuthenticationToken

func SignAuthenticationToken(uid, sid, privateKey, method, uri, body string) (string, error)

func SignAuthenticationTokenWithoutBody added in v1.2.0

func SignAuthenticationTokenWithoutBody(uid, sid, privateKey, method, uri string) (string, error)

func SignOauthAccessToken added in v1.2.0

func SignOauthAccessToken(appID, authorizationID, privateKey, method, uri, body, scp string, requestID string) (string, error)

func UniqueConversationId

func UniqueConversationId(userId, recipientId string) string

func UnlockMultisig added in v1.2.0

func UnlockMultisig(ctx context.Context, id, pin string, uid, sid, sessionKey string) error

func UpdatePin

func UpdatePin(ctx context.Context, oldEncryptedPin, encryptedPin, uid, sid, sessionKey string) error

func UuidFromBytes

func UuidFromBytes(input []byte) (uuid.UUID, error)

func UuidFromString

func UuidFromString(id string) (uuid.UUID, error)

func UuidNewV4

func UuidNewV4() uuid.UUID

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"`
	Reserve     string `json:"reserve"`
	UpdatedAt   string `json:"updated_at"`
}

func CreateAddress

func CreateAddress(ctx context.Context, in *AddressInput, uid, sid, sessionKey, pin, pinToken string) (*Address, error)

func ExternalAdddressCheck added in v1.4.0

func ExternalAdddressCheck(ctx context.Context, asset, destination, tag string) (*Address, error)

func GetAddressesByAssetId added in v1.1.5

func GetAddressesByAssetId(ctx context.Context, assetId, uid, sid, sessionKey string) ([]*Address, error)

func ReadAddress added in v1.1.5

func ReadAddress(ctx context.Context, addressId, uid, sid, sessionKey string) (*Address, error)

type AddressInput

type AddressInput struct {
	AssetId     string
	Label       string
	Destination string
	Tag         string
}

type Asset

type Asset struct {
	AssetId        string         `json:"asset_id"`
	ChainId        string         `json:"chain_id"`
	Symbol         string         `json:"symbol"`
	Name           string         `json:"name"`
	IconURL        string         `json:"icon_url"`
	PriceBTC       string         `json:"price_btc"`
	PriceUSD       string         `json:"price_usd"`
	Balance        string         `json:"balance"`
	Destination    string         `json:"destination"`
	Tag            string         `json:"tag"`
	Confirmations  int            `json:"confirmations"`
	DepositEntries []DepositEntry `json:"deposit_entries"`
}

func AssetList

func AssetList(ctx context.Context, accessToken string) ([]*Asset, error)

func AssetListWithRequestID added in v1.4.3

func AssetListWithRequestID(ctx context.Context, accessToken, requestID string) ([]*Asset, error)

func AssetSearch added in v1.1.5

func AssetSearch(ctx context.Context, name string) ([]*Asset, error)

func AssetShow

func AssetShow(ctx context.Context, assetId string, accessToken string) (*Asset, error)

func AssetShowWithRequestID added in v1.4.3

func AssetShowWithRequestID(ctx context.Context, assetId string, accessToken, requestID string) (*Asset, 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 added in v1.1.5

func AttachmentShow(ctx context.Context, uid, sid, key, id string) (*Attachment, error)

func CreateAttachment added in v1.1.5

func CreateAttachment(ctx context.Context, uid, sid, key string) (*Attachment, error)

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 added in v1.2.0

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) 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 added in v1.1.5

func (b *BlazeClient) SendPost(ctx context.Context, msg MessageView, content string) error

func (*BlazeClient) SendRecallMessage added in v1.4.0

func (b *BlazeClient) SendRecallMessage(ctx context.Context, conversationId, recipientId, recallMessageId string) error

type BlazeListener

type BlazeListener interface {
	OnMessage(ctx context.Context, msg MessageView, userId string) error
	OnAckReceipt(ctx context.Context, msg MessageView, userID string) error
	SyncAck() bool
}

type BlazeMessage

type BlazeMessage struct {
	Id     string                 `json:"id"`
	Action string                 `json:"action"`
	Params map[string]interface{} `json:"params,omitempty"`
	Data   json.RawMessage        `json:"data,omitempty"`
	Error  *Error                 `json:"error,omitempty"`
}

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 string, accessToken string) (*Conversation, error)

func CreateConversation

func CreateConversation(ctx context.Context, category, conversationId string, name, announcement string, participants []Participant, uid, sid, key string) (*Conversation, error)

type DepositEntry added in v1.3.0

type DepositEntry struct {
	Destination string `json:"destination"`
	Tag         string `json:"tag"`
}

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 AuthorizationError(ctx context.Context) Error

func BadDataError

func BadDataError(ctx context.Context) Error

func BlazeServerError

func BlazeServerError(ctx context.Context, err error) Error

func ForbiddenError

func ForbiddenError(ctx context.Context) Error

func ServerError

func ServerError(ctx context.Context, err error) Error

func (Error) Error

func (sessionError Error) Error() string

type Fiat added in v1.2.0

type Fiat struct {
	Code string  `json:"code"`
	Rate float64 `json:"rate"`
}

func Fiats added in v1.2.0

func Fiats(ctx context.Context, uid, sid, sessionKey string) ([]*Fiat, error)

type GhostKeyRequest added in v1.2.1

type GhostKeyRequest struct {
	Receivers []string `json:"receivers"`
	Index     int      `json:"index"`
	Hint      string   `json:"hint"`
}

type GhostKeys added in v1.2.0

type GhostKeys struct {
	Type string   `json:"type"`
	Mask string   `json:"mask"`
	Keys []string `json:"keys"`
}

func ReadGhostKey added in v1.2.1

func ReadGhostKey(ctx context.Context, receivers []string, index int, hint string, uid, sid, sessionKey string) (*GhostKeys, error)

func ReadGhostKeys added in v1.2.0

func ReadGhostKeys(ctx context.Context, gkr []GhostKeyRequest, uid, sid, sessionKey string) ([]*GhostKeys, error)

type LiveMessagePayload added in v1.1.5

type LiveMessagePayload struct {
	Width    int    `json:"width"`
	Height   int    `json:"height"`
	ThumbUrl string `json:"thumb_url"`
	Url      string `json:"url"`
}

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 MultisigRequest added in v1.2.0

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 added in v1.2.0

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 SignMultisig added in v1.2.0

func SignMultisig(ctx context.Context, id, pin string, uid, sid, sessionKey string) (*MultisigRequest, error)

type MultisigUTXO added in v1.2.0

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"`
	CreatedAt       time.Time `json:"created_at"`
	UpdatedAt       time.Time `json:"updated_at"`
	SignedBy        string    `json:"signed_by"`
	SignedTx        string    `json:"signed_tx"`
}

func ReadMultisigs added in v1.2.0

func ReadMultisigs(ctx context.Context, limit int, offset, membersHash, threshold, state, uid, sid, sessionKey string) ([]*MultisigUTXO, error)

state: spent, unspent, signed

func ReadMultisigsLegacy added in v1.2.0

func ReadMultisigsLegacy(ctx context.Context, limit int, offset, uid, sid, sessionKey string) ([]*MultisigUTXO, error)

type Participant

type Participant struct {
	UserId    string    `json:"user_id"`
	Role      string    `json:"role"`
	CreatedAt time.Time `json:"created_at"`
}

type ParticipantSessionView added in v1.2.0

type ParticipantSessionView struct {
	Type      string `json:"type"`
	UserId    string `json:"user_id"`
	SessionId string `json:"session_id"`
	PublicKey string `json:"public_key"`
}

type Payment added in v1.2.0

type Payment struct {
	Type      string    `json:"type"`
	TraceId   string    `json:"trace_id"`
	AssetId   string    `json:"asset_id"`
	Amount    string    `json:"amount"`
	Threshold int64     `json:"threshold"`
	Receivers []string  `json:"receivers"`
	Memo      string    `json:"memo"`
	Status    string    `json:"status"`
	CodeId    string    `json:"code_id"`
	CreatedAt time.Time `json:"created_at"`
}

func CreatePaymentRequest added in v1.2.0

func CreatePaymentRequest(ctx context.Context, payment *PaymentRequest, uid, sid, sessionKey string) (*Payment, error)

func ReadPaymentByCode added in v1.2.0

func ReadPaymentByCode(ctx context.Context, codeId string) (*Payment, error)

type PaymentRequest added in v1.2.0

type PaymentRequest struct {
	AssetId          string `json:"asset_id"`
	Amount           string `json:"amount"`
	TraceId          string `json:"trace_id"`
	Memo             string `json:"memo"`
	OpponentMultisig struct {
		Receivers []string `json:"receivers"`
		Threshold int64    `json:"threshold"`
	} `json:"opponent_multisig"`
}

type RawTransaction

type RawTransaction struct {
	Type            string    `json:"type"`
	SnapshotId      string    `json:"snapshot_id"`
	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"`
	SnapshotHash    string    `json:"snapshot_hash"`
	SnapshotAt      time.Time `json:"snapshot_at"`
}

func CreateMultisigTransaction added in v1.2.0

func CreateMultisigTransaction(ctx context.Context, in *TransferInput, uid, sid, sessionKey, pin, pinToken string) (*RawTransaction, error)

func CreateTransaction

func CreateTransaction(ctx context.Context, in *TransferInput, uid, sid, sessionKey, pin, pinToken string) (*RawTransaction, error)

type RecallMessagePayload added in v1.1.5

type RecallMessagePayload struct {
	MessageId string `json:"message_id"`
}

type ReceiptAcknowledgementRequest added in v1.1.5

type ReceiptAcknowledgementRequest struct {
	MessageId string `json:"message_id"`
	Status    string `json:"status"`
}

type Snapshot added in v1.1.5

type Snapshot 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"`
	CreatedAt      time.Time `json:"created_at"`
	// deposit &  withdrawal
	TransactionHash string `json:"transaction_hash,omitempty"`
	OutputIndex     int64  `json:"output_index,omitempty"`
	Sender          string `json:"sender,omitempty"`
	Receiver        string `json:"receiver,omitempty"`
	// transfer
	SnapshotHash  string    `json:"snapshot_hash,omitempty"`
	SnapshotAt    time.Time `json:"snapshot_at,omitempty"`
	OpponentId    string    `json:"opponent_id,omitempty"`
	TraceId       string    `json:"trace_id,omitempty"`
	Memo          string    `json:"memo,omitempty"`
	Confirmations int64     `json:"confirmations,omitempty"`
	State         string    `json:"state,omitempty"`
	Fee           struct {
		Amount  string `json:"amount"`
		AssetId string `json:"asset_id"`
	} `json:"fee,omitempty"`
}

func CreateTransfer

func CreateTransfer(ctx context.Context, in *TransferInput, uid, sid, sessionKey, pin, pinToken string) (*Snapshot, error)

func CreateWithdrawal

func CreateWithdrawal(ctx context.Context, in *WithdrawalInput, uid, sid, sessionKey, pin, pinToken string) (*Snapshot, error)

func NetworkSnapshot added in v1.1.5

func NetworkSnapshot(ctx context.Context, snapshotId string) (*Snapshot, error)

func NetworkSnapshotByToken added in v1.1.5

func NetworkSnapshotByToken(ctx context.Context, snapshotId, accessToken string) (*Snapshot, error)

func ReadTransferByTrace added in v1.1.5

func ReadTransferByTrace(ctx context.Context, traceId, uid, sid, sessionKey string) (*Snapshot, error)

func SnapshotById added in v1.1.5

func SnapshotById(ctx context.Context, snapshotId string, uid, sid, sessionKey string) (*Snapshot, error)

func SnapshotByToken added in v1.1.5

func SnapshotByToken(ctx context.Context, snapshotId string, accessToken string) (*Snapshot, error)

func Snapshots added in v1.1.5

func Snapshots(ctx context.Context, limit int, offset, assetId, order, uid, sid, sessionKey string) ([]*Snapshot, error)

func SnapshotsByToken added in v1.1.5

func SnapshotsByToken(ctx context.Context, limit int, offset, assetId, order, accessToken string) ([]*Snapshot, error)

type SnapshotShort added in v1.2.0

type SnapshotShort 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"`
	CreatedAt  time.Time `json:"created_at"`
	TraceId    string    `json:"trace_id"`
	OpponentId string    `json:"opponent_id"`
	Memo       string    `json:"data"`
}

func NetworkSnapshots added in v1.1.5

func NetworkSnapshots(ctx context.Context, limit int, offset, assetId, order string) ([]*SnapshotShort, error)

func NetworkSnapshotsByToken added in v1.1.5

func NetworkSnapshotsByToken(ctx context.Context, limit int, offset, assetId, order, uid, sid, sessionKey string) ([]*SnapshotShort, error)

type Transaction added in v1.1.5

type Transaction struct {
	Type            string `json:"type"`
	TransactionId   string `json:"transaction_id"`
	TransactionHash string `json:"transaction_hash"`
	Sender          string `json:"sender"`
	ChainId         string `json:"chain_id"`
	AssetId         string `json:"asset_id"`
	Amount          string `json:"amount"`
	Destination     string `json:"destination"`
	Tag             string `json:"tag"`
	Confirmations   int    `json:"confirmations"`
	Threshold       int    `json:"threshold"`
	CreatedAt       string `json:"created_at"`
}

func ExternalTranactions added in v1.1.5

func ExternalTranactions(ctx context.Context, asset, destination, tag string) ([]*Transaction, error)

type TransferInput

type TransferInput struct {
	AssetId          string
	RecipientId      string
	Amount           number.Decimal
	TraceId          string
	Memo             string
	OpponentKey      string
	OpponentMultisig struct {
		Receivers []string
		Threshold int64
	}
}

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 added in v1.2.0

type Turn struct {
	Url        string `json:"url"`
	Username   string `json:"username"`
	Credential string `json:"credential"`
}

func GetTurnServer added in v1.2.0

func GetTurnServer(ctx context.Context, uid, sid, sessionKey string) ([]*Turn, error)

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"`
	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 CreateUser(ctx context.Context, sessionSecret, fullName, uid, sid, sessionKey string) (*User, error)

func GetUser added in v1.1.5

func GetUser(ctx context.Context, userId, uid, sid, sessionKey string) (*User, error)

func Relationship added in v1.2.0

func Relationship(ctx context.Context, uid, sid, privateKey string, userId, action string) (*User, error)

func SearchUser added in v1.1.5

func SearchUser(ctx context.Context, mixinId, uid, sid, sessionKey string) (*User, error)

func UpdatePreference added in v1.1.4

func UpdatePreference(ctx context.Context, uid, sid, privateKey string, messageSource, conversationSource, currency string, threshold float64) (*User, error)

func UpdateUserMe added in v1.1.5

func UpdateUserMe(ctx context.Context, uid, sid, privateKey, fullName, avatarBase64 string) (*User, error)

func UserMe

func UserMe(ctx context.Context, accessToken string) (*User, error)

func UserMeWithRequestID added in v1.4.3

func UserMeWithRequestID(ctx context.Context, accessToken, requestID string) (*User, error)

func VerifyPIN added in v1.1.5

func VerifyPIN(ctx context.Context, uid, pin, pinToken, sessionId, privateKey string) (*User, error)

type WithdrawalInput

type WithdrawalInput struct {
	AddressId string
	Amount    number.Decimal
	TraceId   string
	Memo      string
	Fee       string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL