Documentation ¶
Overview ¶
Package wallet is a generated GoMock package.
Index ¶
- Constants
- Variables
- func CreateBraveWalletV3(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func CreateChallenge(s *Service) handlers.AppHandler
- func CreateUpholdWalletV3(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func CreateWalletV4(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func DisconnectCustodianLinkV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func GetLinkingInfoV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func GetUpholdWalletBalanceV3(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func GetUpholdWalletBalanceV4(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func GetWalletV3(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func GetWalletV4(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func HandleErrorsZebPay(err error) *handlers.AppError
- func LinkBitFlyerDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func LinkGeminiDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func LinkSolanaAddress(s *Service) handlers.AppHandler
- func LinkUpholdDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func LinkZebPayDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func NewDAppCorsMw(origins []string) func(next http.Handler) http.Handler
- func NewPostgres() (Datastore, ReadOnlyDatastore, error)
- func RecoverWalletV3(w http.ResponseWriter, r *http.Request) *handlers.AppError
- func RegisterRoutes(ctx context.Context, s *Service, r *chi.Mux, ...) *chi.Mux
- func ResponseV3ToInfo(resp ResponseV3) *walletutils.Info
- func UpdateWalletV4(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
- type BalanceResponseV3
- type BitFlyerLinkingInfo
- type BitFlyerLinkingRequest
- type BraveCreationRequest
- type Config
- type CustodianLink
- type CustodianName
- type DAppConfig
- type Datastore
- type DatastoreWithPrometheus
- func (_d DatastoreWithPrometheus) BeginTx() (tp1 *sqlx.Tx, err error)
- func (_d DatastoreWithPrometheus) ConnectCustodialWallet(ctx context.Context, cl *CustodianLink, depositDest string) (err error)
- func (_d DatastoreWithPrometheus) DisconnectCustodialWallet(ctx context.Context, walletID uuid.UUID) (err error)
- func (_d DatastoreWithPrometheus) GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (iap1 *[]walletutils.Info, err error)
- func (_d DatastoreWithPrometheus) GetCustodianLinkByWalletID(ctx context.Context, ID uuid.UUID) (cp1 *CustodianLink, err error)
- func (_d DatastoreWithPrometheus) GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (i1 int, i2 int, err error)
- func (_d DatastoreWithPrometheus) GetLinkingLimitInfo(ctx context.Context, providerLinkingID string) (m1 map[string]LinkingInfo, err error)
- func (_d DatastoreWithPrometheus) GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (la1 []LinkingMetadata, err error)
- func (_d DatastoreWithPrometheus) GetWallet(ctx context.Context, ID uuid.UUID) (ip1 *walletutils.Info, err error)
- func (_d DatastoreWithPrometheus) GetWalletByPublicKey(ctx context.Context, s1 string) (ip1 *walletutils.Info, err error)
- func (_d DatastoreWithPrometheus) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (b1 bool, err error)
- func (_d DatastoreWithPrometheus) InsertBitFlyerRequestID(ctx context.Context, requestID string) (err error)
- func (_d DatastoreWithPrometheus) InsertVerifiedWalletOutboxTx(ctx context.Context, tx *sqlx.Tx, paymentID uuid.UUID, verifiedWallet bool) (err error)
- func (_d DatastoreWithPrometheus) InsertWallet(ctx context.Context, wallet *walletutils.Info) (err error)
- func (_d DatastoreWithPrometheus) InsertWalletTx(ctx context.Context, tx *sqlx.Tx, wallet *walletutils.Info) (err error)
- func (_d DatastoreWithPrometheus) LinkWallet(ctx context.Context, id string, providerID string, providerLinkingID uuid.UUID, ...) (err error)
- func (_d DatastoreWithPrometheus) Migrate(p1 ...uint) (err error)
- func (_d DatastoreWithPrometheus) NewMigrate() (mp1 *migrate.Migrate, err error)
- func (_d DatastoreWithPrometheus) RawDB() (dp1 *sqlx.DB)
- func (_d DatastoreWithPrometheus) RollbackTx(tx *sqlx.Tx)
- func (_d DatastoreWithPrometheus) RollbackTxAndHandle(tx *sqlx.Tx) (err error)
- func (_d DatastoreWithPrometheus) SendVerifiedWalletOutbox(ctx context.Context, client reputation.Client, retry backoff.RetryFunc) (b1 bool, err error)
- func (_d DatastoreWithPrometheus) UpsertWallet(ctx context.Context, wallet *walletutils.Info) (err error)
- type DecodeEd25519Keystore
- type DepositAccountProviderDetailsV3
- type GeminiLinkingRequest
- type GeoCountryValidator
- type GeoValidator
- type LinkBraveDepositAccountRequest
- type LinkDepositAccountResponse
- type LinkUpholdDepositAccountRequest
- type LinkingInfo
- type LinkingMetadata
- type MockGeoValidator
- type MockGeoValidatorMockRecorder
- type MockmetricSvc
- type MockmetricSvcMockRecorder
- type Postgres
- func (pg *Postgres) ConnectCustodialWallet(ctx context.Context, cl *CustodianLink, depositDest string) error
- func (pg *Postgres) DisconnectCustodialWallet(ctx context.Context, walletID uuid.UUID) error
- func (pg *Postgres) GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (*[]walletutils.Info, error)
- func (pg *Postgres) GetCustodianLinkByWalletID(ctx context.Context, ID uuid.UUID) (*CustodianLink, error)
- func (pg *Postgres) GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (int, int, error)
- func (pg *Postgres) GetLinkingLimitInfo(ctx context.Context, providerLinkingID string) (map[string]LinkingInfo, error)
- func (pg *Postgres) GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) ([]LinkingMetadata, error)
- func (pg *Postgres) GetWallet(ctx context.Context, ID uuid.UUID) (*walletutils.Info, error)
- func (pg *Postgres) GetWalletByPublicKey(ctx context.Context, pk string) (*walletutils.Info, error)
- func (pg *Postgres) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (bool, error)
- func (pg *Postgres) InsertBitFlyerRequestID(ctx context.Context, requestID string) error
- func (pg *Postgres) InsertVerifiedWalletOutboxTx(ctx context.Context, tx *sqlx.Tx, walletID uuid.UUID, verifiedWallet bool) error
- func (pg *Postgres) InsertWallet(ctx context.Context, wallet *walletutils.Info) error
- func (pg *Postgres) InsertWalletTx(ctx context.Context, tx *sqlx.Tx, wallet *walletutils.Info) error
- func (pg *Postgres) LinkWallet(ctx context.Context, id string, userDepositDestination string, ...) error
- func (pg *Postgres) SendVerifiedWalletOutbox(ctx context.Context, client reputation.Client, retry backoff.RetryFunc) (bool, error)
- func (pg *Postgres) UpsertWallet(ctx context.Context, wallet *walletutils.Info) error
- type ProviderDetailsV3
- type ReadOnlyDatastore
- type ReadOnlyDatastoreWithPrometheus
- func (_d ReadOnlyDatastoreWithPrometheus) BeginTx() (tp1 *sqlx.Tx, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (iap1 *[]walletutils.Info, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (i1 int, i2 int, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (la1 []LinkingMetadata, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) GetWallet(ctx context.Context, ID uuid.UUID) (ip1 *walletutils.Info, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) GetWalletByPublicKey(ctx context.Context, s1 string) (ip1 *walletutils.Info, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (b1 bool, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) Migrate(p1 ...uint) (err error)
- func (_d ReadOnlyDatastoreWithPrometheus) NewMigrate() (mp1 *migrate.Migrate, err error)
- func (_d ReadOnlyDatastoreWithPrometheus) RawDB() (dp1 *sqlx.DB)
- func (_d ReadOnlyDatastoreWithPrometheus) RollbackTx(tx *sqlx.Tx)
- func (_d ReadOnlyDatastoreWithPrometheus) RollbackTxAndHandle(tx *sqlx.Tx) (err error)
- type ResponseV3
- type ResponseV4
- type Service
- func (service *Service) CreateChallenge(ctx context.Context, paymentID uuid.UUID) (model.Challenge, error)
- func (service *Service) CreateRewardsWallet(ctx context.Context, publicKey string, geoCountry string) (*walletutils.Info, error)
- func (service *Service) DisconnectCustodianLink(ctx context.Context, _ string, walletID uuid.UUID) error
- func (service *Service) GetLinkingInfo(ctx context.Context, providerLinkingID, custodianID string) (map[string]LinkingInfo, error)
- func (service *Service) GetWallet(ctx context.Context, ID uuid.UUID) (*walletutils.Info, error)
- func (service *Service) Jobs() []srv.Job
- func (service *Service) LinkBitFlyerWallet(ctx context.Context, walletID uuid.UUID, depositID, accountHash string) (string, error)
- func (service *Service) LinkGeminiWallet(ctx context.Context, walletID uuid.UUID, verificationToken, depositID string) (string, error)
- func (service *Service) LinkSolanaAddress(ctx context.Context, paymentID uuid.UUID, req linkSolanaAddrRequest) error
- func (service *Service) LinkUpholdWallet(ctx context.Context, wallet uphold.Wallet, transaction string, _ *uuid.UUID) (string, error)
- func (service *Service) LinkZebPayWallet(ctx context.Context, walletID uuid.UUID, verificationToken string) (string, error)
- func (service *Service) LookupVerifier(ctx context.Context, keyID string) (context.Context, httpsignature.Verifier, error)
- func (service *Service) ReadableDatastore() ReadOnlyDatastore
- func (service *Service) RefreshCustodianRegionsWorker(ctx context.Context) (bool, error)
- func (service *Service) RunVerifiedWalletWorker(ctx context.Context) (bool, error)
- func (service *Service) SetCustodianRegions(custodianRegions custodian.Regions)
- func (service *Service) SubmitAnonCardTransaction(ctx context.Context, walletID uuid.UUID, transaction string, ...) (*walletutils.TransactionInfo, error)
- func (service *Service) SubmitCommitableAnonCardTransaction(ctx context.Context, info *walletutils.Info, transaction string, ...) (*walletutils.TransactionInfo, error)
- type UpholdCreationRequest
- type V4Request
- type V4Response
- type ZebPayLinkingRequest
Constants ¶
const ( // InvalidCurrency - wallet currency is invalid InvalidCurrency = "invalid" // BATCurrency - wallet currency is BAT BATCurrency = "BAT" // BTCCurrency - wallet currency is BTC BTCCurrency = "BTC" // ETHCurrency - wallet currency is ETH ETHCurrency = "ETH" // LTCCurrency - wallet currency is LTC LTCCurrency = "LTC" //UpholdProvider - provider label for uphold wallets UpholdProvider = "uphold" //BraveProvider - provider label for brave wallets BraveProvider = "brave" )
Variables ¶
var ( // ErrTooManyCardsLinked denotes when more than 3 cards have been linked to a single wallet ErrTooManyCardsLinked = errors.New("unable to add too many wallets to a single user") // ErrNoReputationClient is returned when no reputation client is in the ctx. ErrNoReputationClient = errors.New("wallet: no reputation client") )
var ( // ErrUnusualActivity - error for wallets with unusual activity ErrUnusualActivity = errors.New("unusual activity") // ErrGeoResetDifferent - error for wallets with reset geo ErrGeoResetDifferent = errors.New("geo reset is different") )
var ( // ErrMissingSignedCreationRequest - required parameter missing from request ErrMissingSignedCreationRequest = errors.New("missing signed creation request") // ErrMissingSignedLinkingRequest - required parameter missing from request ErrMissingSignedLinkingRequest = errors.New("missing signed linking request") // ErrInvalidJSON - the input json is invalid ErrInvalidJSON = errors.New("invalid json") // ErrMissingLinkingInfo - required parameter missing from request ErrMissingLinkingInfo = errors.New("missing linking information") ErrZebPayInvalidVrfToken = errors.New("failed to validate 'linking_info': must not be empty") )
var ( // ClaimNamespace uuidv5 namespace for provider linking - exported for tests ClaimNamespace = uuid.Must(uuid.FromString("c39b298b-b625-42e9-a463-69c7726e5ddc")) )
var VerifiedWalletEnable = isVerifiedWalletEnable()
VerifiedWalletEnable enable verified wallet call
Functions ¶
func CreateBraveWalletV3 ¶
CreateBraveWalletV3 - produces an http handler for the service s which handles creation of brave wallets
func CreateChallenge ¶
func CreateChallenge(s *Service) handlers.AppHandler
func CreateUpholdWalletV3 ¶
CreateUpholdWalletV3 produces a http handler for the service which handles creation of uphold wallets.
func CreateWalletV4 ¶
CreateWalletV4 creates a brave rewards wallet. This endpoint takes a geo country as part of the request that must be ISO3166Alpha2 format.
func DisconnectCustodianLinkV3 ¶
func DisconnectCustodianLinkV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
DisconnectCustodianLinkV3 - produces an http handler for the service s which handles disconnect state for a deposit account linking
func GetLinkingInfoV3 ¶
GetLinkingInfoV3 - get linking metadata
func GetUpholdWalletBalanceV3 ¶
GetUpholdWalletBalanceV3 - produces an http handler for the service s which handles balance inquiries of uphold wallets
func GetUpholdWalletBalanceV4 ¶
GetUpholdWalletBalanceV4 produces an http handler for the service s which handles balance inquiries of uphold wallets
func GetWalletV3 ¶
GetWalletV3 returns a rewards wallet for the given paymentID.
func GetWalletV4 ¶
func HandleErrorsZebPay ¶
HandleErrorsZebPay returns an AppError for the given err.
func LinkBitFlyerDepositAccountV3 ¶
func LinkBitFlyerDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
LinkBitFlyerDepositAccountV3 - produces an http handler for the service s which handles deposit account linking of uphold wallets
func LinkGeminiDepositAccountV3 ¶
func LinkGeminiDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
LinkGeminiDepositAccountV3 returns an HTTP handler which is responsible for linking a Gemini wallet. This endpoint expects a walletID as part of the URL and takes a verification token which encodes the linking information as well as a recipientID. The recipientID is synonymous with a wallets depositID.
func LinkSolanaAddress ¶
func LinkSolanaAddress(s *Service) handlers.AppHandler
func LinkUpholdDepositAccountV3 ¶
func LinkUpholdDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
LinkUpholdDepositAccountV3 - produces an http handler for the service s which handles deposit account linking of uphold wallets
func LinkZebPayDepositAccountV3 ¶
func LinkZebPayDepositAccountV3(s *Service) func(w http.ResponseWriter, r *http.Request) *handlers.AppError
LinkZebPayDepositAccountV3 returns a handler which handles deposit account linking of zebpay wallets.
func NewPostgres ¶
func NewPostgres() (Datastore, ReadOnlyDatastore, error)
NewPostgres creates postgres connections
func RecoverWalletV3 ¶
RecoverWalletV3 - produces an http handler for the service s which handles recovering of brave wallets
func RegisterRoutes ¶
func RegisterRoutes(ctx context.Context, s *Service, r *chi.Mux, metricsMw middleware.InstrumentHandlerDef, dAppCorsMw func(next http.Handler) http.Handler) *chi.Mux
RegisterRoutes - register the wallet api routes given a chi.Mux
func ResponseV3ToInfo ¶
func ResponseV3ToInfo(resp ResponseV3) *walletutils.Info
ResponseV3ToInfo converts a response v3 to wallet info
func UpdateWalletV4 ¶
UpdateWalletV4 updates a brave rewards wallet. This endpoint takes a geo country as part of the request that must be ISO3166Alpha2 format.
Types ¶
type BalanceResponseV3 ¶
type BalanceResponseV3 struct { Total float64 `json:"total"` Spendable float64 `json:"spendable"` Confirmed float64 `json:"confirmed"` Unconfirmed float64 `json:"unconfirmed"` }
BalanceResponseV3 - wallet creation response
type BitFlyerLinkingInfo ¶
type BitFlyerLinkingInfo struct { DepositID string `json:"deposit_id"` RequestID string `json:"request_id"` AccountHash string `json:"account_hash"` ExternalAccountID string `json:"external_account_id"` Timestamp time.Time `json:"timestamp"` }
BitFlyerLinkingInfo - jwt structure of the linking info
type BitFlyerLinkingRequest ¶
type BitFlyerLinkingRequest struct { LinkingInfo string `json:"linkingInfo"` DepositID string `json:"-"` AccountHash string `json:"-"` }
BitFlyerLinkingRequest - the structure for a brave provider wallet creation request
func (*BitFlyerLinkingRequest) Decode ¶
func (blr *BitFlyerLinkingRequest) Decode(ctx context.Context, v []byte) error
Decode - implementation of decodable interface
func (*BitFlyerLinkingRequest) HandleErrors ¶
func (blr *BitFlyerLinkingRequest) HandleErrors(err error) *handlers.AppError
HandleErrors - handle any errors from this request
type BraveCreationRequest ¶
type BraveCreationRequest struct{}
BraveCreationRequest - the structure for a brave provider wallet creation request
func (*BraveCreationRequest) Decode ¶
func (bcr *BraveCreationRequest) Decode(ctx context.Context, v []byte) error
Decode - implementation of decodable interface
func (*BraveCreationRequest) HandleErrors ¶
func (bcr *BraveCreationRequest) HandleErrors(err error) *handlers.AppError
HandleErrors - handle any errors from this request
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config defines a GeoCountryValidator configuration.
type CustodianLink ¶
type CustodianLink struct { WalletID *uuid.UUID `json:"wallet_id" db:"wallet_id" valid:"uuidv4"` Custodian string `json:"custodian" db:"custodian" valid:"in(uphold,brave,gemini,bitflyer)"` CreatedAt time.Time `json:"created_at" db:"created_at" valid:"-"` UpdatedAt *time.Time `json:"updated_at" db:"updated_at" valid:"-"` LinkedAt time.Time `json:"linked_at" db:"linked_at" valid:"-"` DisconnectedAt *time.Time `json:"disconnected_at" db:"disconnected_at" valid:"-"` LinkingID *uuid.UUID `json:"linking_id" db:"linking_id" valid:"uuid"` UnlinkedAt *time.Time `json:"unlinked_at" db:"unlinked_at" valid:"-"` }
CustodianLink representation a wallet_custodian record.
func NewSolanaCustodialLink ¶
func NewSolanaCustodialLink(walletID uuid.UUID, depositDestination string) *CustodianLink
func (*CustodianLink) GetLinkingIDString ¶
func (cl *CustodianLink) GetLinkingIDString() string
GetLinkingIDString - get string version of the LinkingID
func (*CustodianLink) GetWalletIDString ¶
func (cl *CustodianLink) GetWalletIDString() string
GetWalletIDString - get string version of the WalletID
type CustodianName ¶
type CustodianName string
CustodianName - input validation for custodian name
func (*CustodianName) Decode ¶
func (cn *CustodianName) Decode(ctx context.Context, v []byte) error
Decode - implement the decodable interface for this input
func (*CustodianName) String ¶
func (cn *CustodianName) String() string
String - implement the stringer interface for this input
type DAppConfig ¶
type DAppConfig struct {
AllowedOrigins []string
}
type Datastore ¶
type Datastore interface { datastore.Datastore LinkWallet(ctx context.Context, id string, providerID string, providerLinkingID uuid.UUID, depositProvider string) error GetLinkingLimitInfo(ctx context.Context, providerLinkingID string) (map[string]LinkingInfo, error) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (bool, error) // GetLinkingsByProviderLinkingID gets the wallet linking info by provider linking id GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) ([]LinkingMetadata, error) // GetByProviderLinkingID gets the wallet by provider linking id GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (*[]walletutils.Info, error) // GetWallet by ID GetWallet(ctx context.Context, ID uuid.UUID) (*walletutils.Info, error) // GetWalletByPublicKey by ID GetWalletByPublicKey(context.Context, string) (*walletutils.Info, error) // InsertWallet inserts the given wallet InsertWallet(ctx context.Context, wallet *walletutils.Info) error // InsertWalletTx inserts the given wallet as part of provided sql.Tx transaction. InsertWalletTx(ctx context.Context, tx *sqlx.Tx, wallet *walletutils.Info) error // InsertBitFlyerRequestID - attempt an insert on a request id InsertBitFlyerRequestID(ctx context.Context, requestID string) error // UpsertWallet UpsertWallets inserts a wallet if it does not already exist UpsertWallet(ctx context.Context, wallet *walletutils.Info) error // ConnectCustodialWallet - connect the wallet's custodial verified wallet. ConnectCustodialWallet(ctx context.Context, cl *CustodianLink, depositDest string) error // DisconnectCustodialWallet - disconnect the wallet's custodial id DisconnectCustodialWallet(ctx context.Context, walletID uuid.UUID) error // GetCustodianLinkByWalletID retrieves the currently linked wallet custodian by walletID. GetCustodianLinkByWalletID(ctx context.Context, ID uuid.UUID) (*CustodianLink, error) // GetCustodianLinkCount - get the wallet custodian link count across all wallets GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (int, int, error) // InsertVerifiedWalletOutboxTx inserts a verifiedWalletOutbox for processing. InsertVerifiedWalletOutboxTx(ctx context.Context, tx *sqlx.Tx, paymentID uuid.UUID, verifiedWallet bool) error // SendVerifiedWalletOutbox sends requests to reputation service. SendVerifiedWalletOutbox(ctx context.Context, client reputation.Client, retry backoff.RetryFunc) (bool, error) }
Datastore holds the interface for the wallet datastore
type DatastoreWithPrometheus ¶
type DatastoreWithPrometheus struct {
// contains filtered or unexported fields
}
DatastoreWithPrometheus implements Datastore interface with all methods wrapped with Prometheus metrics
func NewDatastoreWithPrometheus ¶
func NewDatastoreWithPrometheus(base Datastore, instanceName string) DatastoreWithPrometheus
NewDatastoreWithPrometheus returns an instance of the Datastore decorated with prometheus summary metric
func (DatastoreWithPrometheus) BeginTx ¶
func (_d DatastoreWithPrometheus) BeginTx() (tp1 *sqlx.Tx, err error)
BeginTx implements Datastore
func (DatastoreWithPrometheus) ConnectCustodialWallet ¶
func (_d DatastoreWithPrometheus) ConnectCustodialWallet(ctx context.Context, cl *CustodianLink, depositDest string) (err error)
ConnectCustodialWallet implements Datastore
func (DatastoreWithPrometheus) DisconnectCustodialWallet ¶
func (_d DatastoreWithPrometheus) DisconnectCustodialWallet(ctx context.Context, walletID uuid.UUID) (err error)
DisconnectCustodialWallet implements Datastore
func (DatastoreWithPrometheus) GetByProviderLinkingID ¶
func (_d DatastoreWithPrometheus) GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (iap1 *[]walletutils.Info, err error)
GetByProviderLinkingID implements Datastore
func (DatastoreWithPrometheus) GetCustodianLinkByWalletID ¶
func (_d DatastoreWithPrometheus) GetCustodianLinkByWalletID(ctx context.Context, ID uuid.UUID) (cp1 *CustodianLink, err error)
GetCustodianLinkByWalletID implements Datastore
func (DatastoreWithPrometheus) GetCustodianLinkCount ¶
func (_d DatastoreWithPrometheus) GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (i1 int, i2 int, err error)
GetCustodianLinkCount implements Datastore
func (DatastoreWithPrometheus) GetLinkingLimitInfo ¶
func (_d DatastoreWithPrometheus) GetLinkingLimitInfo(ctx context.Context, providerLinkingID string) (m1 map[string]LinkingInfo, err error)
GetLinkingLimitInfo implements Datastore
func (DatastoreWithPrometheus) GetLinkingsByProviderLinkingID ¶
func (_d DatastoreWithPrometheus) GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (la1 []LinkingMetadata, err error)
GetLinkingsByProviderLinkingID implements Datastore
func (DatastoreWithPrometheus) GetWallet ¶
func (_d DatastoreWithPrometheus) GetWallet(ctx context.Context, ID uuid.UUID) (ip1 *walletutils.Info, err error)
GetWallet implements Datastore
func (DatastoreWithPrometheus) GetWalletByPublicKey ¶
func (_d DatastoreWithPrometheus) GetWalletByPublicKey(ctx context.Context, s1 string) (ip1 *walletutils.Info, err error)
GetWalletByPublicKey implements Datastore
func (DatastoreWithPrometheus) HasPriorLinking ¶
func (_d DatastoreWithPrometheus) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (b1 bool, err error)
HasPriorLinking implements Datastore
func (DatastoreWithPrometheus) InsertBitFlyerRequestID ¶
func (_d DatastoreWithPrometheus) InsertBitFlyerRequestID(ctx context.Context, requestID string) (err error)
InsertBitFlyerRequestID implements Datastore
func (DatastoreWithPrometheus) InsertVerifiedWalletOutboxTx ¶
func (_d DatastoreWithPrometheus) InsertVerifiedWalletOutboxTx(ctx context.Context, tx *sqlx.Tx, paymentID uuid.UUID, verifiedWallet bool) (err error)
InsertVerifiedWalletOutboxTx implements Datastore
func (DatastoreWithPrometheus) InsertWallet ¶
func (_d DatastoreWithPrometheus) InsertWallet(ctx context.Context, wallet *walletutils.Info) (err error)
InsertWallet implements Datastore
func (DatastoreWithPrometheus) InsertWalletTx ¶
func (_d DatastoreWithPrometheus) InsertWalletTx(ctx context.Context, tx *sqlx.Tx, wallet *walletutils.Info) (err error)
InsertWalletTx implements Datastore
func (DatastoreWithPrometheus) LinkWallet ¶
func (_d DatastoreWithPrometheus) LinkWallet(ctx context.Context, id string, providerID string, providerLinkingID uuid.UUID, depositProvider string) (err error)
LinkWallet implements Datastore
func (DatastoreWithPrometheus) Migrate ¶
func (_d DatastoreWithPrometheus) Migrate(p1 ...uint) (err error)
Migrate implements Datastore
func (DatastoreWithPrometheus) NewMigrate ¶
func (_d DatastoreWithPrometheus) NewMigrate() (mp1 *migrate.Migrate, err error)
NewMigrate implements Datastore
func (DatastoreWithPrometheus) RawDB ¶
func (_d DatastoreWithPrometheus) RawDB() (dp1 *sqlx.DB)
RawDB implements Datastore
func (DatastoreWithPrometheus) RollbackTx ¶
func (_d DatastoreWithPrometheus) RollbackTx(tx *sqlx.Tx)
RollbackTx implements Datastore
func (DatastoreWithPrometheus) RollbackTxAndHandle ¶
func (_d DatastoreWithPrometheus) RollbackTxAndHandle(tx *sqlx.Tx) (err error)
RollbackTxAndHandle implements Datastore
func (DatastoreWithPrometheus) SendVerifiedWalletOutbox ¶
func (_d DatastoreWithPrometheus) SendVerifiedWalletOutbox(ctx context.Context, client reputation.Client, retry backoff.RetryFunc) (b1 bool, err error)
SendVerifiedWalletOutbox implements Datastore
func (DatastoreWithPrometheus) UpsertWallet ¶
func (_d DatastoreWithPrometheus) UpsertWallet(ctx context.Context, wallet *walletutils.Info) (err error)
UpsertWallet implements Datastore
type DecodeEd25519Keystore ¶
type DecodeEd25519Keystore struct{}
DecodeEd25519Keystore is a keystore that "looks up" a verifier by attempting to decode the keyID as a base64 encoded ed25519 public key
func (*DecodeEd25519Keystore) LookupVerifier ¶
func (d *DecodeEd25519Keystore) LookupVerifier(ctx context.Context, keyID string) (context.Context, httpsignature.Verifier, error)
LookupVerifier by decoding keyID
type DepositAccountProviderDetailsV3 ¶
type DepositAccountProviderDetailsV3 struct { Name *string `json:"name"` ID *string `json:"id"` LinkingID string `json:"linkingId,omitempty"` AnonymousAddress string `json:"anonymousAddress,omitempty"` }
DepositAccountProviderDetailsV3 - details about the provider
type GeminiLinkingRequest ¶
type GeminiLinkingRequest struct { VerificationToken string `json:"linking_info"` DepositID string `json:"recipient_id"` }
GeminiLinkingRequest holds info needed to link gemini account
func (*GeminiLinkingRequest) Decode ¶
func (glr *GeminiLinkingRequest) Decode(ctx context.Context, v []byte) error
Decode - implementation of decodable interface
func (*GeminiLinkingRequest) HandleErrors ¶
func (glr *GeminiLinkingRequest) HandleErrors(err error) *handlers.AppError
HandleErrors - handle any errors from this request
type GeoCountryValidator ¶
type GeoCountryValidator struct {
// contains filtered or unexported fields
}
GeoCountryValidator defines a GeoCountryValidator.
func NewGeoCountryValidator ¶
func NewGeoCountryValidator(s3 appaws.S3GetObjectAPI, config Config) *GeoCountryValidator
NewGeoCountryValidator creates a new instance of NewGeoCountryValidator.
type GeoValidator ¶
GeoValidator - interface describing validation of geolocation
type LinkBraveDepositAccountRequest ¶
type LinkBraveDepositAccountRequest struct {
DepositDestination string `json:"depositDestination"`
}
LinkBraveDepositAccountRequest - the structure for a linking request for uphold deposit account
func (*LinkBraveDepositAccountRequest) Decode ¶
func (lbdar *LinkBraveDepositAccountRequest) Decode(ctx context.Context, v []byte) error
Decode - implementation of decodable interface
func (*LinkBraveDepositAccountRequest) HandleErrors ¶
func (lbdar *LinkBraveDepositAccountRequest) HandleErrors(err error) *handlers.AppError
HandleErrors - handle any errors from this request
type LinkDepositAccountResponse ¶
type LinkDepositAccountResponse struct {
GeoCountry string `json:"geoCountry"`
}
LinkDepositAccountResponse is the response returned by the linking endpoints.
type LinkUpholdDepositAccountRequest ¶
type LinkUpholdDepositAccountRequest struct { SignedLinkingRequest string `json:"signedLinkingRequest"` AnonymousAddress string `json:"anonymousAddress"` }
LinkUpholdDepositAccountRequest - the structure for a linking request for uphold deposit account
func (*LinkUpholdDepositAccountRequest) Decode ¶
func (ludar *LinkUpholdDepositAccountRequest) Decode(ctx context.Context, v []byte) error
Decode - implementation of decodable interface
func (*LinkUpholdDepositAccountRequest) HandleErrors ¶
func (ludar *LinkUpholdDepositAccountRequest) HandleErrors(err error) *handlers.AppError
HandleErrors - handle any errors from this request
type LinkingInfo ¶
type LinkingInfo struct { LinkingID *uuid.UUID `json:"-"` NextAvailableUnlinking *time.Time `json:"nextAvailableUnlinking,omitempty"` WalletsLinked int `json:"walletsLinked"` OpenLinkingSlots int `json:"openLinkingSlots"` OtherWalletsLinked []LinkingMetadata `json:"otherWalletsLinked,omitempty"` }
LinkingInfo - a structure for wallet linking information
type LinkingMetadata ¶
type LinkingMetadata struct { WalletID uuid.UUID `json:"id" db:"wallet_id"` DisconnectedAt *time.Time `json:"disconnectedAt,omitempty" db:"disconnected_at"` LastLinkedAt *time.Time `json:"lastLinkedAt,omitempty" db:"linked_at"` FirstLinkedAt *time.Time `json:"firstLinkedAt,omitempty" db:"created_at"` UnLinkedAt *time.Time `json:"unlinkedAt,omitempty" db:"unlinked_at"` Active bool `json:"active" db:"active"` }
LinkingMetadata - show more details in linking info about the linkages
type MockGeoValidator ¶
type MockGeoValidator struct {
// contains filtered or unexported fields
}
MockGeoValidator is a mock of GeoValidator interface.
func NewMockGeoValidator ¶
func NewMockGeoValidator(ctrl *gomock.Controller) *MockGeoValidator
NewMockGeoValidator creates a new mock instance.
func (*MockGeoValidator) EXPECT ¶
func (m *MockGeoValidator) EXPECT() *MockGeoValidatorMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
type MockGeoValidatorMockRecorder ¶
type MockGeoValidatorMockRecorder struct {
// contains filtered or unexported fields
}
MockGeoValidatorMockRecorder is the mock recorder for MockGeoValidator.
func (*MockGeoValidatorMockRecorder) Validate ¶
func (mr *MockGeoValidatorMockRecorder) Validate(ctx, geolocation interface{}) *gomock.Call
Validate indicates an expected call of Validate.
type MockmetricSvc ¶
type MockmetricSvc struct {
// contains filtered or unexported fields
}
MockmetricSvc is a mock of metricSvc interface.
func NewMockmetricSvc ¶
func NewMockmetricSvc(ctrl *gomock.Controller) *MockmetricSvc
NewMockmetricSvc creates a new mock instance.
func (*MockmetricSvc) EXPECT ¶
func (m *MockmetricSvc) EXPECT() *MockmetricSvcMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockmetricSvc) LinkFailureZP ¶
func (m *MockmetricSvc) LinkFailureZP(cc string)
LinkFailureZP mocks base method.
func (*MockmetricSvc) LinkSuccessZP ¶
func (m *MockmetricSvc) LinkSuccessZP(cc string)
LinkSuccessZP mocks base method.
type MockmetricSvcMockRecorder ¶
type MockmetricSvcMockRecorder struct {
// contains filtered or unexported fields
}
MockmetricSvcMockRecorder is the mock recorder for MockmetricSvc.
func (*MockmetricSvcMockRecorder) LinkFailureZP ¶
func (mr *MockmetricSvcMockRecorder) LinkFailureZP(cc interface{}) *gomock.Call
LinkFailureZP indicates an expected call of LinkFailureZP.
func (*MockmetricSvcMockRecorder) LinkSuccessZP ¶
func (mr *MockmetricSvcMockRecorder) LinkSuccessZP(cc interface{}) *gomock.Call
LinkSuccessZP indicates an expected call of LinkSuccessZP.
type Postgres ¶
Postgres is a Datastore wrapper around a postgres database
func (*Postgres) ConnectCustodialWallet ¶
func (pg *Postgres) ConnectCustodialWallet(ctx context.Context, cl *CustodianLink, depositDest string) error
ConnectCustodialWallet - create a record of a custodian wallet
func (*Postgres) DisconnectCustodialWallet ¶
DisconnectCustodialWallet - disconnect the wallet's custodial id
func (*Postgres) GetByProviderLinkingID ¶
func (pg *Postgres) GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (*[]walletutils.Info, error)
GetByProviderLinkingID gets a wallet by a provider address
func (*Postgres) GetCustodianLinkByWalletID ¶
func (pg *Postgres) GetCustodianLinkByWalletID(ctx context.Context, ID uuid.UUID) (*CustodianLink, error)
GetCustodianLinkByWalletID retrieves the currently linked wallet custodian by walletID.
func (*Postgres) GetCustodianLinkCount ¶
func (pg *Postgres) GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (int, int, error)
GetCustodianLinkCount - get the wallet custodian link count across all wallets
func (*Postgres) GetLinkingLimitInfo ¶
func (pg *Postgres) GetLinkingLimitInfo(ctx context.Context, providerLinkingID string) (map[string]LinkingInfo, error)
GetLinkingLimitInfo - get some basic info about linking limit
func (*Postgres) GetLinkingsByProviderLinkingID ¶
func (pg *Postgres) GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) ([]LinkingMetadata, error)
GetLinkingsByProviderLinkingID gets wallet linkings by a provider address
func (*Postgres) GetWallet ¶
GetWallet retrieves a wallet by its walletID, if no wallet is found then nil is returned.
func (*Postgres) GetWalletByPublicKey ¶
GetWalletByPublicKey gets a wallet by a public key
func (*Postgres) HasPriorLinking ¶
func (pg *Postgres) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (bool, error)
HasPriorLinking - check if this wallet id has been linked to this provider linking id in the past
func (*Postgres) InsertBitFlyerRequestID ¶
InsertBitFlyerRequestID - attempts to insert a request id
func (*Postgres) InsertVerifiedWalletOutboxTx ¶
func (pg *Postgres) InsertVerifiedWalletOutboxTx(ctx context.Context, tx *sqlx.Tx, walletID uuid.UUID, verifiedWallet bool) error
InsertVerifiedWalletOutboxTx inserts a verifiedWalletOutbox for processing.
func (*Postgres) InsertWallet ¶
InsertWallet inserts the given wallet
func (*Postgres) InsertWalletTx ¶
func (pg *Postgres) InsertWalletTx(ctx context.Context, tx *sqlx.Tx, wallet *walletutils.Info) error
InsertWalletTx inserts the given wallet
func (*Postgres) LinkWallet ¶
func (pg *Postgres) LinkWallet(ctx context.Context, id string, userDepositDestination string, providerLinkingID uuid.UUID, depositProvider string) error
LinkWallet links a rewards wallet to the given deposit provider.
func (*Postgres) SendVerifiedWalletOutbox ¶
func (pg *Postgres) SendVerifiedWalletOutbox(ctx context.Context, client reputation.Client, retry backoff.RetryFunc) (bool, error)
SendVerifiedWalletOutbox sends requests to reputation service.
func (*Postgres) UpsertWallet ¶
UpsertWallet upserts the given wallet
type ProviderDetailsV3 ¶
type ProviderDetailsV3 struct { ID string `json:"id"` Name string `json:"name"` LinkingID string `json:"linkingId,omitempty"` AnonymousAddress string `json:"anonymousAddress,omitempty"` }
ProviderDetailsV3 - details about the provider
type ReadOnlyDatastore ¶
type ReadOnlyDatastore interface { datastore.Datastore HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (bool, error) // GetLinkingsByProviderLinkingID gets the wallet linking info by provider linking id GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) ([]LinkingMetadata, error) // GetByProviderLinkingID gets a wallet by provider linking id GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (*[]walletutils.Info, error) // GetWallet by ID GetWallet(ctx context.Context, ID uuid.UUID) (*walletutils.Info, error) // GetWalletByPublicKey retrieves a wallet by its public key. GetWalletByPublicKey(context.Context, string) (*walletutils.Info, error) // GetCustodianLinkCount - get the wallet custodian link count across all wallets GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (int, int, error) }
ReadOnlyDatastore includes all database methods that can be made with a read only db connection
func NewReadOnlyPostgres ¶
func NewReadOnlyPostgres(databaseURL string, performMigration bool, migrationTrack string, dbStatsPrefix ...string) (ReadOnlyDatastore, error)
NewReadOnlyPostgres creates a new Postgres RO Datastore
type ReadOnlyDatastoreWithPrometheus ¶
type ReadOnlyDatastoreWithPrometheus struct {
// contains filtered or unexported fields
}
ReadOnlyDatastoreWithPrometheus implements ReadOnlyDatastore interface with all methods wrapped with Prometheus metrics
func NewReadOnlyDatastoreWithPrometheus ¶
func NewReadOnlyDatastoreWithPrometheus(base ReadOnlyDatastore, instanceName string) ReadOnlyDatastoreWithPrometheus
NewReadOnlyDatastoreWithPrometheus returns an instance of the ReadOnlyDatastore decorated with prometheus summary metric
func (ReadOnlyDatastoreWithPrometheus) BeginTx ¶
func (_d ReadOnlyDatastoreWithPrometheus) BeginTx() (tp1 *sqlx.Tx, err error)
BeginTx implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) GetByProviderLinkingID ¶
func (_d ReadOnlyDatastoreWithPrometheus) GetByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (iap1 *[]walletutils.Info, err error)
GetByProviderLinkingID implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) GetCustodianLinkCount ¶
func (_d ReadOnlyDatastoreWithPrometheus) GetCustodianLinkCount(ctx context.Context, linkingID uuid.UUID, custodian string) (i1 int, i2 int, err error)
GetCustodianLinkCount implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) GetLinkingsByProviderLinkingID ¶
func (_d ReadOnlyDatastoreWithPrometheus) GetLinkingsByProviderLinkingID(ctx context.Context, providerLinkingID uuid.UUID) (la1 []LinkingMetadata, err error)
GetLinkingsByProviderLinkingID implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) GetWallet ¶
func (_d ReadOnlyDatastoreWithPrometheus) GetWallet(ctx context.Context, ID uuid.UUID) (ip1 *walletutils.Info, err error)
GetWallet implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) GetWalletByPublicKey ¶
func (_d ReadOnlyDatastoreWithPrometheus) GetWalletByPublicKey(ctx context.Context, s1 string) (ip1 *walletutils.Info, err error)
GetWalletByPublicKey implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) HasPriorLinking ¶
func (_d ReadOnlyDatastoreWithPrometheus) HasPriorLinking(ctx context.Context, walletID uuid.UUID, providerLinkingID uuid.UUID) (b1 bool, err error)
HasPriorLinking implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) Migrate ¶
func (_d ReadOnlyDatastoreWithPrometheus) Migrate(p1 ...uint) (err error)
Migrate implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) NewMigrate ¶
func (_d ReadOnlyDatastoreWithPrometheus) NewMigrate() (mp1 *migrate.Migrate, err error)
NewMigrate implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) RawDB ¶
func (_d ReadOnlyDatastoreWithPrometheus) RawDB() (dp1 *sqlx.DB)
RawDB implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) RollbackTx ¶
func (_d ReadOnlyDatastoreWithPrometheus) RollbackTx(tx *sqlx.Tx)
RollbackTx implements ReadOnlyDatastore
func (ReadOnlyDatastoreWithPrometheus) RollbackTxAndHandle ¶
func (_d ReadOnlyDatastoreWithPrometheus) RollbackTxAndHandle(tx *sqlx.Tx) (err error)
RollbackTxAndHandle implements ReadOnlyDatastore
type ResponseV3 ¶
type ResponseV3 struct { PaymentID string `json:"paymentId"` DepositAccountProvider *DepositAccountProviderDetailsV3 `json:"depositAccountProvider,omitempty"` WalletProvider *ProviderDetailsV3 `json:"walletProvider,omitempty"` AltCurrency string `json:"altcurrency"` PublicKey string `json:"publicKey"` }
ResponseV3 - wallet creation response
type ResponseV4 ¶
type ResponseV4 struct { PaymentID string `json:"paymentId"` DepositAccountProvider *DepositAccountProviderDetailsV3 `json:"depositAccountProvider,omitempty"` WalletProvider *ProviderDetailsV3 `json:"walletProvider,omitempty"` AltCurrency string `json:"altcurrency"` PublicKey string `json:"publicKey"` SelfCustodyAvailable map[string]bool `json:"selfCustodyAvailable"` }
ResponseV4 - wallet creation response
type Service ¶
type Service struct { Datastore Datastore RoDatastore ReadOnlyDatastore // contains filtered or unexported fields }
Service contains datastore connections
func InitService ¶
func InitService( datastore Datastore, roDatastore ReadOnlyDatastore, chlRepo challengeRepo, allowList allowListRepo, repClient reputation.Client, geminiClient gemini.Client, geoCountryValidator GeoValidator, retry backoff.RetryFunc, metric metricSvc, gemini geminiSvc, dappConf DAppConfig) (*Service, error)
InitService creates a new instances of the wallet service.
func SetupService ¶
SetupService - create a new wallet service
func (*Service) CreateChallenge ¶
func (*Service) CreateRewardsWallet ¶
func (service *Service) CreateRewardsWallet(ctx context.Context, publicKey string, geoCountry string) (*walletutils.Info, error)
CreateRewardsWallet creates a brave rewards wallet and informs the reputation service. If either the local transaction or call to the reputation service fails then the wallet is not created.
func (*Service) DisconnectCustodianLink ¶
func (service *Service) DisconnectCustodianLink(ctx context.Context, _ string, walletID uuid.UUID) error
DisconnectCustodianLink - removes the link to the custodian wallet that is active
func (*Service) GetLinkingInfo ¶
func (service *Service) GetLinkingInfo(ctx context.Context, providerLinkingID, custodianID string) (map[string]LinkingInfo, error)
GetLinkingInfo - Get data about the linking info
func (*Service) LinkBitFlyerWallet ¶
func (service *Service) LinkBitFlyerWallet(ctx context.Context, walletID uuid.UUID, depositID, accountHash string) (string, error)
LinkBitFlyerWallet links a wallet and transfers funds to newly linked wallet
func (*Service) LinkGeminiWallet ¶
func (service *Service) LinkGeminiWallet(ctx context.Context, walletID uuid.UUID, verificationToken, depositID string) (string, error)
LinkGeminiWallet links a wallet to a Gemini account.
func (*Service) LinkSolanaAddress ¶
func (*Service) LinkUpholdWallet ¶
func (service *Service) LinkUpholdWallet(ctx context.Context, wallet uphold.Wallet, transaction string, _ *uuid.UUID) (string, error)
LinkUpholdWallet links an uphold.Wallet and transfers funds.
func (*Service) LinkZebPayWallet ¶
func (service *Service) LinkZebPayWallet(ctx context.Context, walletID uuid.UUID, verificationToken string) (string, error)
LinkZebPayWallet links a wallet and transfers funds to newly linked wallet.
func (*Service) LookupVerifier ¶
func (service *Service) LookupVerifier(ctx context.Context, keyID string) (context.Context, httpsignature.Verifier, error)
LookupVerifier based on the HTTP signing keyID, which in our case is the walletID
func (*Service) ReadableDatastore ¶
func (service *Service) ReadableDatastore() ReadOnlyDatastore
ReadableDatastore returns a read only datastore if available, otherwise a normal datastore
func (*Service) RefreshCustodianRegionsWorker ¶
RefreshCustodianRegionsWorker - get the custodian regions from the merge param bucket
func (*Service) RunVerifiedWalletWorker ¶
func (*Service) SetCustodianRegions ¶
func (*Service) SubmitAnonCardTransaction ¶
func (service *Service) SubmitAnonCardTransaction( ctx context.Context, walletID uuid.UUID, transaction string, destination string, ) (*walletutils.TransactionInfo, error)
SubmitAnonCardTransaction validates and submits a transaction on behalf of an anonymous card
func (*Service) SubmitCommitableAnonCardTransaction ¶
func (service *Service) SubmitCommitableAnonCardTransaction( ctx context.Context, info *walletutils.Info, transaction string, destination string, confirm bool, ) (*walletutils.TransactionInfo, error)
SubmitCommitableAnonCardTransaction submits a transaction
type UpholdCreationRequest ¶
type UpholdCreationRequest struct { SignedCreationRequest string `json:"signedCreationRequest"` PublicKey string `json:"-"` }
UpholdCreationRequest - the structure for a brave provider wallet creation request
func (*UpholdCreationRequest) Decode ¶
func (ucr *UpholdCreationRequest) Decode(ctx context.Context, v []byte) error
Decode - implementation of decodable interface
func (*UpholdCreationRequest) HandleErrors ¶
func (ucr *UpholdCreationRequest) HandleErrors(err error) *handlers.AppError
HandleErrors - handle any errors from this request
type V4Request ¶
type V4Request struct {
GeoCountry string `json:"geoCountry"`
}
V4Request contains the fields for making v4 wallet requests.
type V4Response ¶
type V4Response struct {
PaymentID string `json:"paymentId"`
}
V4Response contains the fields for v4 wallet responses.
type ZebPayLinkingRequest ¶
type ZebPayLinkingRequest struct {
VerificationToken string `json:"linking_info"`
}
ZebPayLinkingRequest holds info needed to link zebpay account.