models

package
v0.9.5 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2025 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultWalletTTL = time.Minute * 20

Variables

View Source
var (
	ErrNoRowsInResultSet                        = NewProcessingError("no rows in result set")
	ErrBlockNotFound                            = NewProcessingError("block not found")
	ErrTransactionType        NotificationError = errors.New("define transaction type")
	ErrSendWebhook            NotificationError = errors.New("send webhook")
	ErrBlockProcessingTimeout NotificationError = errors.New("block processing timeout")
	ErrWithdrawalNotFound     NotificationError = errors.New("withdrawal not found")
	ErrWalletCast                               = errors.New("wallet type cast error")
	ErrWalletNotFound                           = errors.New("wallet not found")
	ErrOwnerNotFound                            = errors.New("owner not found")
	ErrClientNotFound                           = errors.New("client not found")
	ErrBlockchainUndefined                      = errors.New("blockchain undefined")
)

Functions

func ConvertBlockchainType

func ConvertBlockchainType(blockchain commonv1.Blockchain) (wconstants.BlockchainType, error)

ConvertBlockchainType converts commonv1.Blockchain to wconstants.BlockchainType.

func ConvertBlockchainTypeToPb

func ConvertBlockchainTypeToPb(blockchain wconstants.BlockchainType) commonv1.Blockchain

ConvertBlockchainTypeToPb

func ConvertTransferStatusToPb

func ConvertTransferStatusToPb(status constants.TransferStatus) transferv1.Status

ConvertTransferStatusToPb converts a TransferStatus to a TransferStatus protobuf message

func TransferTransactionSystemTypes

func TransferTransactionSystemTypes() []string

Types

type Asset

type Asset struct {
	ID     string
	Amount decimal.Decimal
}

type BlockchainBlock

type BlockchainBlock struct {
	Blockchain wconstants.BlockchainType
	Number     uint64
}

type Client

type Client struct {
	ID          uuid.UUID          `db:"id" json:"id"`
	SecretKey   string             `db:"secret_key" json:"secret_key"`
	CallbackUrl string             `db:"callback_url" json:"callback_url"`
	CreatedAt   pgtype.Timestamptz `db:"created_at" json:"created_at"`
	UpdatedAt   pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type ColdWallet

type ColdWallet struct {
	ID         uuid.UUID                 `db:"id" json:"id"`
	Blockchain wconstants.BlockchainType `db:"blockchain" json:"blockchain" validate:"required"`
	Address    string                    `db:"address" json:"address" validate:"required"`
	OwnerID    uuid.UUID                 `db:"owner_id" json:"owner_id" validate:"required,uuid4"`
	IsActive   bool                      `db:"is_active" json:"is_active"`
	IsDirty    bool                      `db:"is_dirty" json:"is_dirty"`
	CreatedAt  pgtype.Timestamptz        `db:"created_at" json:"created_at"`
	UpdatedAt  pgtype.Timestamptz        `db:"updated_at" json:"updated_at"`
}

type HotWallet

type HotWallet struct {
	ID               uuid.UUID                 `db:"id" json:"id"`
	Blockchain       wconstants.BlockchainType `db:"blockchain" json:"blockchain" validate:"required"`
	Address          string                    `db:"address" json:"address" validate:"required"`
	OwnerID          uuid.UUID                 `db:"owner_id" json:"owner_id" validate:"required,uuid4"`
	ExternalWalletID string                    `db:"external_wallet_id" json:"external_wallet_id" validate:"required"`
	Sequence         int32                     `db:"sequence" json:"sequence"`
	IsActivated      bool                      `db:"is_activated" json:"is_activated"`
	IsActive         bool                      `db:"is_active" json:"is_active"`
	IsDirty          bool                      `db:"is_dirty" json:"is_dirty"`
	CreatedAt        pgtype.Timestamptz        `db:"created_at" json:"created_at"`
	UpdatedAt        pgtype.Timestamptz        `db:"updated_at" json:"updated_at"`
}

type LastProcessedBlock

type LastProcessedBlock struct {
	Blockchain       wconstants.BlockchainType
	StartBlockNumber uint64
	EndBlockNumber   uint64
}

type NotificationError

type NotificationError error

type NullRiverJobState

type NullRiverJobState struct {
	RiverJobState RiverJobState `json:"river_job_state"`
	Valid         bool          `json:"valid"` // Valid is true if RiverJobState is not NULL
}

func (*NullRiverJobState) Scan

func (ns *NullRiverJobState) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullRiverJobState) Value

func (ns NullRiverJobState) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type Owner

type Owner struct {
	ID           uuid.UUID          `db:"id" json:"id"`
	ExternalID   string             `db:"external_id" json:"external_id" validate:"required"`
	ClientID     uuid.UUID          `db:"client_id" json:"client_id" validate:"required,uuid4"`
	Mnemonic     string             `db:"mnemonic" json:"mnemonic" validate:"required"`
	PassPhrase   pgtype.Text        `db:"pass_phrase" json:"pass_phrase"`
	OtpSecret    pgtype.Text        `db:"otp_secret" json:"otp_secret" validate:"required"`
	OtpConfirmed bool               `db:"otp_confirmed" json:"otp_confirmed"`
	CreatedAt    pgtype.Timestamptz `db:"created_at" json:"created_at"`
	UpdatedAt    pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type ProcessedBlock

type ProcessedBlock struct {
	Blockchain wconstants.BlockchainType `db:"blockchain" json:"blockchain"`
	Number     int64                     `db:"number" json:"number"`
	CreatedAt  pgtype.Timestamptz        `db:"created_at" json:"created_at"`
	UpdatedAt  pgtype.Timestamptz        `db:"updated_at" json:"updated_at"`
}

type ProcessingError

type ProcessingError string

func NewProcessingError

func NewProcessingError(str string) ProcessingError

func (ProcessingError) Contains

func (p ProcessingError) Contains(err error) bool

func (ProcessingError) Error

func (p ProcessingError) Error() string

type ProcessingWallet

type ProcessingWallet struct {
	ID         uuid.UUID                 `db:"id" json:"id"`
	Blockchain wconstants.BlockchainType `db:"blockchain" json:"blockchain" validate:"required"`
	Address    string                    `db:"address" json:"address" validate:"required"`
	OwnerID    uuid.UUID                 `db:"owner_id" json:"owner_id" validate:"required,uuid4"`
	Sequence   int32                     `db:"sequence" json:"sequence"`
	IsActive   bool                      `db:"is_active" json:"is_active"`
	IsDirty    bool                      `db:"is_dirty" json:"is_dirty"`
	CreatedAt  pgtype.Timestamptz        `db:"created_at" json:"created_at"`
	UpdatedAt  pgtype.Timestamptz        `db:"updated_at" json:"updated_at"`
}

type PrometheusMetricType

type PrometheusMetricType int
const ErrorPrometheusMetricType PrometheusMetricType = iota

type RiverClient

type RiverClient struct {
	ID        string             `db:"id" json:"id"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"`
	Metadata  []byte             `db:"metadata" json:"metadata"`
	PausedAt  pgtype.Timestamptz `db:"paused_at" json:"paused_at"`
	UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type RiverClientQueue

type RiverClientQueue struct {
	RiverClientID    string             `db:"river_client_id" json:"river_client_id"`
	Name             string             `db:"name" json:"name"`
	CreatedAt        pgtype.Timestamptz `db:"created_at" json:"created_at"`
	MaxWorkers       int64              `db:"max_workers" json:"max_workers"`
	Metadata         []byte             `db:"metadata" json:"metadata"`
	NumJobsCompleted int64              `db:"num_jobs_completed" json:"num_jobs_completed"`
	NumJobsRunning   int64              `db:"num_jobs_running" json:"num_jobs_running"`
	UpdatedAt        pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type RiverJob

type RiverJob struct {
	ID           int64              `db:"id" json:"id"`
	State        RiverJobState      `db:"state" json:"state"`
	Attempt      int16              `db:"attempt" json:"attempt"`
	MaxAttempts  int16              `db:"max_attempts" json:"max_attempts"`
	AttemptedAt  pgtype.Timestamptz `db:"attempted_at" json:"attempted_at"`
	CreatedAt    pgtype.Timestamptz `db:"created_at" json:"created_at"`
	FinalizedAt  pgtype.Timestamptz `db:"finalized_at" json:"finalized_at"`
	ScheduledAt  pgtype.Timestamptz `db:"scheduled_at" json:"scheduled_at"`
	Priority     int16              `db:"priority" json:"priority"`
	Args         []byte             `db:"args" json:"args"`
	AttemptedBy  []string           `db:"attempted_by" json:"attempted_by"`
	Errors       [][]byte           `db:"errors" json:"errors"`
	Kind         string             `db:"kind" json:"kind"`
	Metadata     []byte             `db:"metadata" json:"metadata"`
	Queue        string             `db:"queue" json:"queue"`
	Tags         []string           `db:"tags" json:"tags"`
	UniqueKey    []byte             `db:"unique_key" json:"unique_key"`
	UniqueStates pgtype.Bits        `db:"unique_states" json:"unique_states"`
}

type RiverJobState

type RiverJobState string
const (
	RiverJobStateAvailable RiverJobState = "available"
	RiverJobStateCancelled RiverJobState = "cancelled"
	RiverJobStateCompleted RiverJobState = "completed"
	RiverJobStateDiscarded RiverJobState = "discarded"
	RiverJobStatePending   RiverJobState = "pending"
	RiverJobStateRetryable RiverJobState = "retryable"
	RiverJobStateRunning   RiverJobState = "running"
	RiverJobStateScheduled RiverJobState = "scheduled"
)

func AllRiverJobStateValues

func AllRiverJobStateValues() []RiverJobState

func (*RiverJobState) Scan

func (e *RiverJobState) Scan(src interface{}) error

func (RiverJobState) Valid

func (e RiverJobState) Valid() bool

type RiverLeader

type RiverLeader struct {
	ElectedAt pgtype.Timestamptz `db:"elected_at" json:"elected_at"`
	ExpiresAt pgtype.Timestamptz `db:"expires_at" json:"expires_at"`
	LeaderID  string             `db:"leader_id" json:"leader_id"`
	Name      string             `db:"name" json:"name"`
}

type RiverQueue

type RiverQueue struct {
	Name      string             `db:"name" json:"name"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"`
	Metadata  []byte             `db:"metadata" json:"metadata"`
	PausedAt  pgtype.Timestamptz `db:"paused_at" json:"paused_at"`
	UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type Setting

type Setting struct {
	ID        uuid.UUID          `db:"id" json:"id"`
	ModelID   uuid.NullUUID      `db:"model_id" json:"model_id"`
	ModelType pgtype.Text        `db:"model_type" json:"model_type"`
	Name      string             `db:"name" json:"name"`
	Value     string             `db:"value" json:"value"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"`
	UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type Transfer

type Transfer struct {
	ID               uuid.UUID                 `db:"id" json:"id"`
	Status           constants.TransferStatus  `db:"status" json:"status"`
	ClientID         uuid.UUID                 `db:"client_id" json:"client_id"`
	OwnerID          uuid.UUID                 `db:"owner_id" json:"owner_id"`
	RequestID        string                    `db:"request_id" json:"request_id"`
	Blockchain       wconstants.BlockchainType `db:"blockchain" json:"blockchain"`
	FromAddresses    []string                  `db:"from_addresses" json:"from_addresses"`
	ToAddresses      []string                  `db:"to_addresses" json:"to_addresses"`
	WalletFromType   constants.WalletType      `db:"wallet_from_type" json:"wallet_from_type"`
	AssetIdentifier  string                    `db:"asset_identifier" json:"asset_identifier"`
	Kind             pgtype.Text               `db:"kind" json:"kind"`
	WholeAmount      bool                      `db:"whole_amount" json:"whole_amount"`
	Amount           decimal.NullDecimal       `db:"amount" json:"amount"`
	Fee              decimal.NullDecimal       `db:"fee" json:"fee"`
	FeeMax           decimal.NullDecimal       `db:"fee_max" json:"fee_max"`
	TxHash           pgtype.Text               `db:"tx_hash" json:"tx_hash"`
	CreatedAt        pgtype.Timestamptz        `db:"created_at" json:"created_at"`
	UpdatedAt        pgtype.Timestamptz        `db:"updated_at" json:"updated_at"`
	StateData        map[string]any            `db:"state_data" json:"state_data"`
	WorkflowSnapshot workflow.Snapshot         `db:"workflow_snapshot" json:"workflow_snapshot"`
}

func (Transfer) GetFromAddress

func (t Transfer) GetFromAddress() string

GetFromAddress returns the first from address

func (Transfer) GetToAddress

func (t Transfer) GetToAddress() string

GetToAddress returns the first to address

func (*Transfer) ToPb

func (t *Transfer) ToPb() (*transferv1.Transfer, error)

ToPb converts a Transfer model to a Transfer protobuf message

type TransferTransaction

type TransferTransaction struct {
	ID                uuid.UUID                  `db:"id" json:"id"`
	TransferID        uuid.UUID                  `db:"transfer_id" json:"transfer_id"`
	TxHash            string                     `db:"tx_hash" json:"tx_hash"`
	BandwidthAmount   decimal.Decimal            `db:"bandwidth_amount" json:"bandwidth_amount"`
	EnergyAmount      decimal.Decimal            `db:"energy_amount" json:"energy_amount"`
	NativeTokenAmount decimal.Decimal            `db:"native_token_amount" json:"native_token_amount"`
	NativeTokenFee    decimal.Decimal            `db:"native_token_fee" json:"native_token_fee"`
	TxType            TransferTransactionType    `db:"tx_type" json:"tx_type"`
	Status            TransferTransactionsStatus `db:"status" json:"status"`
	Step              string                     `db:"step" json:"step"`
	CreatedAt         pgtype.Timestamptz         `db:"created_at" json:"created_at"`
	UpdatedAt         pgtype.Timestamptz         `db:"updated_at" json:"updated_at"`
}

func (*TransferTransaction) ToPb

type TransferTransactionType

type TransferTransactionType string
const (
	TransferTransactionTypeDelegateResources TransferTransactionType = "resource_delegation"
	TransferTransactionTypeReclaimResources  TransferTransactionType = "resource_reclaim"
	TransferTransactionTypeSendBurnBaseAsset TransferTransactionType = "send_burn_base_asset"
	TransferTransactionTypeAccountActivation TransferTransactionType = "account_activation"
	TransferTransactionTypeTransfer          TransferTransactionType = "transfer"
)

func (TransferTransactionType) String

func (t TransferTransactionType) String() string

type TransferTransactionsStatus

type TransferTransactionsStatus string
const (
	TransferTransactionsStatusPending     TransferTransactionsStatus = "pending"
	TransferTransactionsStatusUnconfirmed TransferTransactionsStatus = "unconfirmed"
	TransferTransactionsStatusConfirmed   TransferTransactionsStatus = "confirmed"
	TransferTransactionsStatusFailed      TransferTransactionsStatus = "failed"
)

func (TransferTransactionsStatus) String

func (tts TransferTransactionsStatus) String() string

type Webhook

type Webhook struct {
	ID        uuid.UUID          `db:"id" json:"id"`
	Kind      WebhookKind        `db:"kind" json:"kind"`
	Status    WebhookStatus      `db:"status" json:"status"`
	Attempts  int32              `db:"attempts" json:"attempts"`
	Payload   []byte             `db:"payload" json:"payload"`
	ClientID  uuid.UUID          `db:"client_id" json:"client_id"`
	Response  pgtype.Text        `db:"response" json:"response"`
	CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"`
	SentAt    pgtype.Timestamptz `db:"sent_at" json:"sent_at"`
	UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
}

type WebhookEventStatus

type WebhookEventStatus string
const (
	WebhookEventStatusWaitingConfirmations WebhookEventStatus = "waiting_confirmations"
	WebhookEventStatusInMempool            WebhookEventStatus = "in_mempool"
	WebhookEventStatusCompleted            WebhookEventStatus = "completed"
	WebhookEventStatusFailed               WebhookEventStatus = "failed"
)

func (*WebhookEventStatus) Scan

func (w *WebhookEventStatus) Scan(src interface{}) error

Scan implements the sql.Scanner interface

func (WebhookEventStatus) String

func (w WebhookEventStatus) String() string

String returns the webhook event status as a string

func (WebhookEventStatus) Valid

func (w WebhookEventStatus) Valid() bool

Valid

type WebhookKind

type WebhookKind string
const (
	WebhookKindTransfer       WebhookKind = "transfer"
	WebhookKindDeposit        WebhookKind = "deposit"
	WebhookKindTransferStatus WebhookKind = "transfer_status"
)

func (*WebhookKind) Scan

func (w *WebhookKind) Scan(src interface{}) error

Scan implements the sql.Scanner interface

func (WebhookKind) String

func (w WebhookKind) String() string

String returns the webhook kind as a string

func (WebhookKind) Valid

func (w WebhookKind) Valid() bool

Valid

type WebhookStatus

type WebhookStatus string
const (
	WebhookStatusNew  WebhookStatus = "new"
	WebhookStatusSent WebhookStatus = "sent"
)

func (*WebhookStatus) Scan

func (w *WebhookStatus) Scan(src interface{}) error

Scan implements the sql.Scanner interface

func (WebhookStatus) String

func (w WebhookStatus) String() string

String returns the webhook status as a string

func (WebhookStatus) Valid

func (w WebhookStatus) Valid() bool

Valid

type WebhookView

type WebhookView struct {
	ID          uuid.UUID          `db:"id" json:"id"`
	Kind        WebhookKind        `db:"kind" json:"kind"`
	Status      WebhookStatus      `db:"status" json:"status"`
	Attempts    int32              `db:"attempts" json:"attempts"`
	Payload     []byte             `db:"payload" json:"payload"`
	ClientID    uuid.UUID          `db:"client_id" json:"client_id"`
	Response    pgtype.Text        `db:"response" json:"response"`
	CreatedAt   pgtype.Timestamptz `db:"created_at" json:"created_at"`
	SentAt      pgtype.Timestamptz `db:"sent_at" json:"sent_at"`
	UpdatedAt   pgtype.Timestamptz `db:"updated_at" json:"updated_at"`
	CallbackUrl string             `db:"callback_url" json:"callback_url"`
	SecretKey   string             `db:"secret_key" json:"secret_key"`
}

Jump to

Keyboard shortcuts

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