mongodb

package
v3.0.0-...-fa64414 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2021 License: GPL-3.0 Imports: 17 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 AddRouterSwap

func AddRouterSwap(ms *MgoSwap) error

AddRouterSwap add router swap

func AddRouterSwapResult

func AddRouterSwapResult(mr *MgoSwapResult) error

AddRouterSwapResult add router swap result

func AddUsedRValue

func AddUsedRValue(pubkey, r string) error

AddUsedRValue add used r, if error mean already exist

func ConvertFromSwapInfo

func ConvertFromSwapInfo(swapinfo *SwapInfo) (tokens.SwapInfo, error)

ConvertFromSwapInfo convert

func FindNextSwapNonce

func FindNextSwapNonce(chainID, mpc string) (uint64, error)

FindNextSwapNonce find next swap nonce

func HasClient

func HasClient() bool

HasClient has client

func MongoServerInit

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

MongoServerInit int mongodb server session

func RouterAdminPassBigValue

func RouterAdminPassBigValue(fromChainID, txid string, logIndex int) error

RouterAdminPassBigValue pass big value

func RouterAdminReswap

func RouterAdminReswap(fromChainID, txid string, logIndex int) error

RouterAdminReswap reswap

func UpdateRouterSwapInfoAndStatus

func UpdateRouterSwapInfoAndStatus(fromChainID, txid string, logindex int, swapInfo *SwapInfo, status SwapStatus, timestamp int64, memo string) error

UpdateRouterSwapInfoAndStatus update router swap info and status

func UpdateRouterSwapResult

func UpdateRouterSwapResult(fromChainID, txid string, logindex int, items *SwapResultUpdateItems) error

UpdateRouterSwapResult update router swap result

func UpdateRouterSwapResultStatus

func UpdateRouterSwapResultStatus(fromChainID, txid string, logindex int, status SwapStatus, timestamp int64, memo string) error

UpdateRouterSwapResultStatus update router swap result status

func UpdateRouterSwapStatus

func UpdateRouterSwapStatus(fromChainID, txid string, logindex int, status SwapStatus, timestamp int64, memo string) error

UpdateRouterSwapStatus update router swap status

Types

type AnyCallSwapInfo

type AnyCallSwapInfo struct {
	CallFrom   string   `bson:"callFrom"   json:"callFrom"`
	CallTo     []string `bson:"callTo"     json:"callTo"`
	CallData   []string `bson:"callData"   json:"callData"`
	Callbacks  []string `bson:"callbacks"  json:"callbacks"`
	CallNonces []string `bson:"callNonces" json:"callNonces"`
}

AnyCallSwapInfo struct

type ERC20SwapInfo

type ERC20SwapInfo struct {
	ForNative     bool     `bson:"forNative,omitempty"     json:"forNative,omitempty"`
	ForUnderlying bool     `bson:"forUnderlying,omitempty" json:"forUnderlying,omitempty"`
	Token         string   `bson:"token"                   json:"token"`
	TokenID       string   `bson:"tokenID"                 json:"tokenID"`
	Path          []string `bson:"path,omitempty"          json:"path,omitempty"`
	AmountOutMin  string   `bson:"amountOutMin,omitempty"  json:"amountOutMin,omitempty"`
}

ERC20SwapInfo struct

type MgoSwap

type MgoSwap struct {
	Key         string `bson:"_id"` // fromChainID + txid + logindex
	SwapType    uint32 `bson:"swaptype"`
	TxID        string `bson:"txid"`
	TxTo        string `bson:"txto"`
	Bind        string `bson:"bind"`
	LogIndex    int    `bson:"logIndex"`
	FromChainID string `bson:"fromChainID"`
	ToChainID   string `bson:"toChainID"`
	SwapInfo    `bson:"swapinfo"`
	Status      SwapStatus `bson:"status"`
	InitTime    int64      `bson:"inittime"`
	Timestamp   int64      `bson:"timestamp"`
	Memo        string     `bson:"memo"`
}

MgoSwap registered swap

func FindRouterSwap

func FindRouterSwap(fromChainID, txid string, logindex int) (*MgoSwap, error)

FindRouterSwap find router swap

func FindRouterSwapsWithChainIDAndStatus

func FindRouterSwapsWithChainIDAndStatus(fromChainID string, status SwapStatus, septime int64) ([]*MgoSwap, error)

FindRouterSwapsWithChainIDAndStatus find router swap with chainid and status in the past septime

func FindRouterSwapsWithStatus

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

FindRouterSwapsWithStatus find router swap with status

type MgoSwapResult

type MgoSwapResult struct {
	Key         string `bson:"_id"` // fromChainID + txid + logindex
	SwapType    uint32 `bson:"swaptype"`
	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"`
	LogIndex    int    `bson:"logIndex"`
	FromChainID string `bson:"fromChainID"`
	ToChainID   string `bson:"toChainID"`
	SwapInfo    `bson:"swapinfo"`
	SwapTx      string     `bson:"swaptx"`
	OldSwapTxs  []string   `bson:"oldswaptxs"`
	SwapHeight  uint64     `bson:"swapheight"`
	SwapTime    uint64     `bson:"swaptime"`
	SwapValue   string     `bson:"swapvalue"`
	SwapNonce   uint64     `bson:"swapnonce"`
	Status      SwapStatus `bson:"status"`
	InitTime    int64      `bson:"inittime"`
	Timestamp   int64      `bson:"timestamp"`
	Memo        string     `bson:"memo"`
	MPC         string     `bson:"mpc"`
}

MgoSwapResult swap result (verified swap)

func FindRouterSwapResult

func FindRouterSwapResult(fromChainID, txid string, logindex int) (*MgoSwapResult, error)

FindRouterSwapResult find router swap result

func FindRouterSwapResults

func FindRouterSwapResults(fromChainID, address string, offset, limit int, status string) ([]*MgoSwapResult, error)

FindRouterSwapResults find router swap results with chainid and address

func FindRouterSwapResultsToReplace

func FindRouterSwapResultsToReplace(septime int64) ([]*MgoSwapResult, error)

FindRouterSwapResultsToReplace find router swap result with status

func FindRouterSwapResultsWithChainIDAndStatus

func FindRouterSwapResultsWithChainIDAndStatus(fromChainID string, status SwapStatus, septime int64) ([]*MgoSwapResult, error)

FindRouterSwapResultsWithChainIDAndStatus find router swap result with chainid and status in the past septime

func FindRouterSwapResultsWithStatus

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

FindRouterSwapResultsWithStatus find router swap result with status

type MgoUsedRValue

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

MgoUsedRValue security enhancement

type NFTSwapInfo

type NFTSwapInfo struct {
	Token   string   `json:"token"`
	TokenID string   `json:"tokenID"`
	IDs     []string `json:"ids"`
	Amounts []string `json:"amounts"`
	Batch   bool     `json:"batch"`
}

NFTSwapInfo struct

type SwapInfo

type SwapInfo struct {
	ERC20SwapInfo   *ERC20SwapInfo   `bson:"routerSwapInfo,omitempty"  json:"routerSwapInfo,omitempty"`
	NFTSwapInfo     *NFTSwapInfo     `bson:"nftSwapInfo,omitempty"     json:"nftSwapInfo,omitempty"`
	AnyCallSwapInfo *AnyCallSwapInfo `bson:"anycallSwapInfo,omitempty" json:"anycallSwapInfo,omitempty"`
}

SwapInfo struct

func ConvertToSwapInfo

func ConvertToSwapInfo(info *tokens.SwapInfo) SwapInfo

ConvertToSwapInfo convert

func (*SwapInfo) GetToken

func (s *SwapInfo) GetToken() string

GetToken get token

func (*SwapInfo) GetTokenID

func (s *SwapInfo) GetTokenID() string

GetTokenID get tokenID

type SwapResultUpdateItems

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

SwapResultUpdateItems swap update items

type SwapStatus

type SwapStatus uint16

SwapStatus swap status

const (
	TxNotStable       SwapStatus = 0
	TxVerifyFailed    SwapStatus = 1
	TxWithWrongValue  SwapStatus = 3
	TxNotSwapped      SwapStatus = 5
	TxProcessed       SwapStatus = 7
	MatchTxEmpty      SwapStatus = 8
	MatchTxNotStable  SwapStatus = 9
	MatchTxStable     SwapStatus = 10
	TxWithBigValue    SwapStatus = 12
	MatchTxFailed     SwapStatus = 14
	SwapInBlacklist   SwapStatus = 15
	TxWithWrongPath   SwapStatus = 19
	MissTokenConfig   SwapStatus = 20
	NoUnderlyingToken SwapStatus = 21

	KeepStatus SwapStatus = 255
	Reswapping SwapStatus = 256
)

swap status values

func GetRouterSwapStatusByVerifyError

func GetRouterSwapStatusByVerifyError(err error) SwapStatus

GetRouterSwapStatusByVerifyError get router swap status by verify error

func (SwapStatus) IsRegisteredOk

func (status SwapStatus) IsRegisteredOk() bool

IsRegisteredOk is successfully registered

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