mongodb

package
v0.3.10 Latest Latest
Warning

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

Go to latest
Published: Nov 26, 2021 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Overview

Package mongodb is a wrapper of mongo-go-driver that defines the collections and CRUD apis on them.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrItemNotFound       = newError(-32002, "mgoError: Item not found")
	ErrItemIsDup          = newError(-32003, "mgoError: Item is duplicate")
	ErrSwapNotFound       = newError(-32011, "mgoError: Swap is not found")
	ErrWrongKey           = newError(-32012, "mgoError: Wrong key")
	ErrForbidUpdateNonce  = newError(-32013, "mgoError: Forbid update swap nonce")
	ErrForbidUpdateSwapTx = newError(-32014, "mgoError: Forbid update swap tx")
)

mongodb special errors

View Source
var (

	// MgoWaitGroup wait all mongodb related task done
	MgoWaitGroup = new(sync.WaitGroup)
)

Functions

func AddP2shAddress

func AddP2shAddress(ma *MgoP2shAddress) error

AddP2shAddress add p2sh address

func AddRegisteredAddress

func AddRegisteredAddress(address string) error

AddRegisteredAddress add register address

func AddSwapHistory

func AddSwapHistory(isSwapin bool, txid, bind, swaptx string) error

AddSwapHistory add

func AddSwapin

func AddSwapin(ms *MgoSwap) error

AddSwapin add swapin

func AddSwapinResult

func AddSwapinResult(mr *MgoSwapResult) error

AddSwapinResult add swapin result

func AddSwapout

func AddSwapout(ms *MgoSwap) error

AddSwapout add swapout

func AddSwapoutResult

func AddSwapoutResult(mr *MgoSwapResult) error

AddSwapoutResult add swapout result

func AddToBlacklist

func AddToBlacklist(address, pairID string) error

AddToBlacklist add to blacklist

func AddUsedRValue

func AddUsedRValue(pubkey, r string) error

AddUsedRValue add used r, if error mean already exist

func FindP2shBindAddress

func FindP2shBindAddress(p2shAddress string) (string, error)

FindP2shBindAddress find bind address through p2sh address

func GetSwapKey

func GetSwapKey(txid, pairID, bind string) string

GetSwapKey txid + pairID + bind

func HasClient

func HasClient() bool

HasClient has client

func LoadAllSwapNonces

func LoadAllSwapNonces() (swapinNonces, swapoutNonces map[string]uint64)

LoadAllSwapNonces load

func ManualManageSwap

func ManualManageSwap(txid, pairID, bind, memo string, isSwapin, isPass bool) error

ManualManageSwap manual manage swap

func MongoServerInit

func MongoServerInit(appName string, hosts []string, dbName, user, pass string)

MongoServerInit int mongodb server session

func PassSwapinBigValue

func PassSwapinBigValue(txid, pairID, bind string) error

PassSwapinBigValue pass swapin big value

func PassSwapoutBigValue

func PassSwapoutBigValue(txid, pairID, bind string) error

PassSwapoutBigValue pass swapout big value

func QueryBlacklist

func QueryBlacklist(address, pairID string) (isBlacked bool, err error)

QueryBlacklist query if is blacked

func RemoveFromBlacklist

func RemoveFromBlacklist(address, pairID string) error

RemoveFromBlacklist remove from blacklist

func Reswapin

func Reswapin(txid, pairID, bind string) error

Reswapin reswapin

func Reswapout

func Reswapout(txid, pairID, bind string) error

Reswapout reswapout

func ReverifySwapin

func ReverifySwapin(txid, pairID, bind string) error

ReverifySwapin reverify swapin

func ReverifySwapout

func ReverifySwapout(txid, pairID, bind string) error

ReverifySwapout reverify swapout

func UpdateLatestScanInfo

func UpdateLatestScanInfo(isSrc bool, blockHeight uint64) error

UpdateLatestScanInfo update latest scan info

func UpdateLatestSwapNonce

func UpdateLatestSwapNonce(address string, isSwapin bool, nonce uint64) (err error)

UpdateLatestSwapNonce update

func UpdateLatestSwapinNonce

func UpdateLatestSwapinNonce(address string, nonce uint64) error

UpdateLatestSwapinNonce update

func UpdateLatestSwapoutNonce

func UpdateLatestSwapoutNonce(address string, nonce uint64) error

UpdateLatestSwapoutNonce update

func UpdateSwapResultStatus

func UpdateSwapResultStatus(isSwapin bool, txid, pairID, bind string, status SwapStatus, timestamp int64, memo string) error

UpdateSwapResultStatus update swap result status

func UpdateSwapStatus

func UpdateSwapStatus(isSwapin bool, txid, pairID, bind string, status SwapStatus, timestamp int64, memo string) error

UpdateSwapStatus update swap status

func UpdateSwapinResult

func UpdateSwapinResult(txid, pairID, bind string, items *SwapResultUpdateItems) error

UpdateSwapinResult update swapin result

func UpdateSwapinResultStatus

func UpdateSwapinResultStatus(txid, pairID, bind string, status SwapStatus, timestamp int64, memo string) error

UpdateSwapinResultStatus update swapin result status

func UpdateSwapinStatus

func UpdateSwapinStatus(txid, pairID, bind string, status SwapStatus, timestamp int64, memo string) error

UpdateSwapinStatus update swapin status

func UpdateSwapoutResult

func UpdateSwapoutResult(txid, pairID, bind string, items *SwapResultUpdateItems) error

UpdateSwapoutResult update swapout result

func UpdateSwapoutResultStatus

func UpdateSwapoutResultStatus(txid, pairID, bind string, status SwapStatus, timestamp int64, memo string) error

UpdateSwapoutResultStatus update swapout result status

func UpdateSwapoutStatus

func UpdateSwapoutStatus(txid, pairID, bind string, status SwapStatus, timestamp int64, memo string) error

UpdateSwapoutStatus update swapout status

Types

type MgoBlackAccount

type MgoBlackAccount struct {
	Key       string `bson:"_id"` // address + pairid
	Address   string `bson:"address"`
	PairID    string `bson:"pairid"`
	Timestamp int64  `bson:"timestamp"`
}

MgoBlackAccount key is address

type MgoLatestScanInfo

type MgoLatestScanInfo struct {
	Key         string `bson:"_id"`
	BlockHeight uint64 `bson:"blockheight"`
	Timestamp   int64  `bson:"timestamp"`
}

MgoLatestScanInfo latest scan info

func FindLatestScanInfo

func FindLatestScanInfo(isSrc bool) (*MgoLatestScanInfo, error)

FindLatestScanInfo find latest scan info

type MgoLatestSwapNonce

type MgoLatestSwapNonce struct {
	Key       string `bson:"_id"` // address + isswapin
	Address   string `bson:"address"`
	IsSwapin  bool   `bson:"isswapin"`
	SwapNonce uint64 `bson:"swapnonce"`
	Timestamp int64  `bson:"timestamp"`
}

MgoLatestSwapNonce latest swap nonce

func FindLatestSwapNonce

func FindLatestSwapNonce(key string) (*MgoLatestSwapNonce, error)

FindLatestSwapNonce find

type MgoP2shAddress

type MgoP2shAddress struct {
	Key         string `bson:"_id"`
	P2shAddress string `bson:"p2shaddress"`
	Timestamp   int64  `bson:"timestamp"`
}

MgoP2shAddress key is the bind address

func FindP2shAddress

func FindP2shAddress(key string) (*MgoP2shAddress, error)

FindP2shAddress find p2sh addrss through bind address

func FindP2shAddresses

func FindP2shAddresses(offset, limit int) ([]*MgoP2shAddress, error)

FindP2shAddresses find p2sh address

type MgoRegisteredAddress

type MgoRegisteredAddress struct {
	Key       string `bson:"_id"`
	Timestamp int64  `bson:"timestamp"`
}

MgoRegisteredAddress key is address (in whitelist)

func FindRegisteredAddress

func FindRegisteredAddress(key string) (*MgoRegisteredAddress, error)

FindRegisteredAddress find register address

type MgoSwap

type MgoSwap struct {
	Key       string     `bson:"_id"` // txid + pairid + bind
	PairID    string     `bson:"pairid"`
	TxID      string     `bson:"txid"`
	From      string     `bson:"from"`
	TxTo      string     `bson:"txto"`
	TxType    uint32     `bson:"txtype"`
	Bind      string     `bson:"bind"`
	Status    SwapStatus `bson:"status"`
	InitTime  int64      `bson:"inittime"`
	Timestamp int64      `bson:"timestamp"`
	Memo      string     `bson:"memo"`
}

MgoSwap registered swap

func FindSwap

func FindSwap(isSwapin bool, txid, pairID, bind string) (*MgoSwap, error)

FindSwap find swap

func FindSwapin

func FindSwapin(txid, pairID, bind string) (*MgoSwap, error)

FindSwapin find swapin

func FindSwapinsWithPairIDAndStatus

func FindSwapinsWithPairIDAndStatus(pairID string, status SwapStatus, septime int64) ([]*MgoSwap, error)

FindSwapinsWithPairIDAndStatus find swapin with pairID and status in the past septime

func FindSwapinsWithStatus

func FindSwapinsWithStatus(status SwapStatus, septime int64) ([]*MgoSwap, error)

FindSwapinsWithStatus find swapin with status in the past septime

func FindSwapout

func FindSwapout(txid, pairID, bind string) (*MgoSwap, error)

FindSwapout find swapout

func FindSwapoutsWithPairIDAndStatus

func FindSwapoutsWithPairIDAndStatus(pairID string, status SwapStatus, septime int64) ([]*MgoSwap, error)

FindSwapoutsWithPairIDAndStatus find swapout with pairID and status in the past septime

func FindSwapoutsWithStatus

func FindSwapoutsWithStatus(status SwapStatus, septime int64) ([]*MgoSwap, error)

FindSwapoutsWithStatus find swapout with status

type MgoSwapHistory

type MgoSwapHistory struct {
	Key      primitive.ObjectID `bson:"_id"`
	IsSwapin bool               `bson:"isswapin"`
	TxID     string             `bson:"txid"`
	Bind     string             `bson:"bind"`
	SwapTx   string             `bson:"swaptx"`
}

MgoSwapHistory swap history

func GetSwapHistory

func GetSwapHistory(isSwapin bool, txid, bind string) ([]*MgoSwapHistory, error)

GetSwapHistory get

type MgoSwapResult

type MgoSwapResult struct {
	Key         string     `bson:"_id"` // txid + pairid + bind
	PairID      string     `bson:"pairid"`
	TxID        string     `bson:"txid"`
	TxTo        string     `bson:"txto"`
	TxHeight    uint64     `bson:"txheight"`
	TxTime      uint64     `bson:"txtime"`
	From        string     `bson:"from"`
	To          string     `bson:"to"`
	Bind        string     `bson:"bind"`
	Value       string     `bson:"value"`
	SwapTx      string     `bson:"swaptx"`
	OldSwapTxs  []string   `bson:"oldswaptxs"`
	OldSwapVals []string   `bson:"oldswapvals"`
	SwapHeight  uint64     `bson:"swapheight"`
	SwapTime    uint64     `bson:"swaptime"`
	SwapValue   string     `bson:"swapvalue"`
	SwapType    uint32     `bson:"swaptype"`
	SwapNonce   uint64     `bson:"swapnonce"`
	Status      SwapStatus `bson:"status"`
	InitTime    int64      `bson:"inittime"`
	Timestamp   int64      `bson:"timestamp"`
	Memo        string     `bson:"memo"`
}

MgoSwapResult swap result (verified swap)

func FindSwapResult

func FindSwapResult(isSwapin bool, txid, pairID, bind string) (*MgoSwapResult, error)

FindSwapResult find swap result

func FindSwapResultsToReplace

func FindSwapResultsToReplace(status SwapStatus, septime int64, isSwapin bool) ([]*MgoSwapResult, error)

FindSwapResultsToReplace find swap results to replace

func FindSwapinResult

func FindSwapinResult(txid, pairID, bind string) (*MgoSwapResult, error)

FindSwapinResult find swapin result

func FindSwapinResults

func FindSwapinResults(address, pairID string, offset, limit int, status string) ([]*MgoSwapResult, error)

FindSwapinResults find swapin history results

func FindSwapinResultsWithStatus

func FindSwapinResultsWithStatus(status SwapStatus, septime int64) ([]*MgoSwapResult, error)

FindSwapinResultsWithStatus find swapin result with status

func FindSwapoutResult

func FindSwapoutResult(txid, pairID, bind string) (*MgoSwapResult, error)

FindSwapoutResult find swapout result

func FindSwapoutResults

func FindSwapoutResults(address, pairID string, offset, limit int, status string) ([]*MgoSwapResult, error)

FindSwapoutResults find swapout history results

func FindSwapoutResultsWithStatus

func FindSwapoutResultsWithStatus(status SwapStatus, septime int64) ([]*MgoSwapResult, error)

FindSwapoutResultsWithStatus find swapout result with status

type MgoUsedRValue

type MgoUsedRValue struct {
	Key       string `bson:"_id"` // r + pubkey
	Timestamp int64  `bson:"timestamp"`
}

MgoUsedRValue security enhancement

type SwapResultUpdateItems

type SwapResultUpdateItems struct {
	SwapTx      string
	OldSwapTxs  []string
	OldSwapVals []string
	SwapHeight  uint64
	SwapTime    uint64
	SwapValue   string
	SwapType    uint32
	SwapNonce   uint64
	Status      SwapStatus
	Timestamp   int64
	Memo        string
}

SwapResultUpdateItems swap update items

type SwapStatus

type SwapStatus uint16

SwapStatus swap status

const (
	TxNotStable           SwapStatus = iota // 0
	TxVerifyFailed                          // 1
	TxWithWrongSender                       // 2
	TxWithWrongValue                        // 3
	TxIncompatible                          // 4 // deprecated
	TxNotSwapped                            // 5
	TxSwapFailed                            // 6 // deprecated
	TxProcessed                             // 7
	MatchTxEmpty                            // 8
	MatchTxNotStable                        // 9
	MatchTxStable                           // 10
	TxWithWrongMemo                         // 11
	TxWithBigValue                          // 12
	TxSenderNotRegistered                   // 13
	MatchTxFailed                           // 14
	SwapInBlacklist                         // 15
	ManualMakeFail                          // 16
	BindAddrIsContract                      // 17

	KeepStatus = 255
	Reswapping = 256
)

swap status values

func GetStatusByTokenVerifyError

func GetStatusByTokenVerifyError(err error) SwapStatus

GetStatusByTokenVerifyError get status by token verify error

func (SwapStatus) CanManualMakeFail

func (status SwapStatus) CanManualMakeFail() bool

CanManualMakeFail can manual make fail

func (SwapStatus) CanReswap

func (status SwapStatus) CanReswap() bool

CanReswap can reswap

func (SwapStatus) CanRetry

func (status SwapStatus) CanRetry() bool

CanRetry can retry

func (SwapStatus) CanReverify

func (status SwapStatus) CanReverify() bool

CanReverify can reverify

func (SwapStatus) String

func (status SwapStatus) String() string

nolint:gocyclo // allow big simple switch

Jump to

Keyboard shortcuts

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