Documentation
¶
Index ¶
- Constants
- func GetEtherscanServiceStatus() map[string]interface{}
- func StopEtherscanWorkers()
- type APIKeyService
- type BalanceHealthReport
- type BalanceManagementService
- func (svc *BalanceManagementService) BulkCleanupFailedOrders(ctx context.Context, failedOrders []FailedOrderInfo) (*BulkCleanupReport, error)
- func (svc *BalanceManagementService) CancelOrderAndReleaseBalance(ctx context.Context, orderID string, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) CancelOrderAndReleaseBalanceWithinTransaction(ctx context.Context, orderID string, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) CheckBalanceHealth(ctx context.Context, providerID string, currencyCode string) (*BalanceHealthReport, error)
- func (svc *BalanceManagementService) CheckBalanceSufficiency(ctx context.Context, providerID string, currencyCode string, ...) (bool, error)
- func (svc *BalanceManagementService) FixBalanceInconsistencies(ctx context.Context, providerID string, currencyCode string) error
- func (svc *BalanceManagementService) GetProviderBalance(ctx context.Context, providerID string, currencyCode string) (*ent.ProviderCurrencies, error)
- func (svc *BalanceManagementService) GetProviderBalances(ctx context.Context, providerID string) ([]*ent.ProviderCurrencies, error)
- func (svc *BalanceManagementService) HandleOrderTimeout(ctx context.Context, orderID string, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) ReleaseReservedBalance(ctx context.Context, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) ReserveBalance(ctx context.Context, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) SafeReleaseBalance(ctx context.Context, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) UpdateProviderBalance(ctx context.Context, providerID string, currencyCode string, ...) error
- func (svc *BalanceManagementService) ValidateAndFixBalances(ctx context.Context, providerID string, currencyCode string) error
- func (svc *BalanceManagementService) ValidateBalanceConsistency(ctx context.Context, providerID string, currencyCode string) error
- type BlockscoutService
- type BulkCleanupReport
- type EngineService
- func (s *EngineService) CreateGatewayWebhook() error
- func (s *EngineService) CreateServerWallet(ctx context.Context, label string) (string, error)
- func (s *EngineService) CreateTransferWebhook(ctx context.Context, chainID int64, contractAddress string, toAddress string, ...) (string, string, error)
- func (s *EngineService) DeleteWebhook(ctx context.Context, webhookID string) error
- func (s *EngineService) DeleteWebhookAndRecord(ctx context.Context, webhookID string) error
- func (s *EngineService) GetAddressTransactionHistory(ctx context.Context, chainID int64, walletAddress string, limit int, ...) ([]map[string]interface{}, error)
- func (s *EngineService) GetContractEvents(ctx context.Context, chainID int64, contractAddress string, ...) ([]interface{}, error)
- func (s *EngineService) GetContractEventsRPC(ctx context.Context, rpcEndpoint string, contractAddress string, ...) ([]interface{}, error)
- func (s *EngineService) GetContractEventsWithFallback(ctx context.Context, network *ent.Network, contractAddress string, ...) ([]interface{}, error)
- func (s *EngineService) GetLatestBlock(ctx context.Context, chainID int64) (int64, error)
- func (s *EngineService) GetTransactionStatus(ctx context.Context, queueId string) (result map[string]interface{}, err error)
- func (s *EngineService) GetWebhookByID(ctx context.Context, webhookID string, chainID int64) (*WebhookInfo, error)
- func (s *EngineService) ParseUserOpErrorJSON(errorJSON map[string]interface{}) string
- func (s *EngineService) SendTransactionBatch(ctx context.Context, chainID int64, address string, ...) (queueID string, err error)
- func (s *EngineService) UpdateWebhook(ctx context.Context, webhookID string, webhookPayload map[string]interface{}) error
- func (s *EngineService) WaitForTransactionMined(ctx context.Context, queueId string, timeout time.Duration) (result map[string]interface{}, err error)
- type ErrorType
- type EtherscanRequest
- type EtherscanResponse
- type EtherscanService
- func (s *EtherscanService) GetAddressTransactionHistory(ctx context.Context, chainID int64, walletAddress string, limit int, ...) ([]map[string]interface{}, error)
- func (s *EtherscanService) GetAddressTransactionHistoryImmediate(ctx context.Context, chainID int64, walletAddress string, limit int, ...) ([]map[string]interface{}, error)
- func (s *EtherscanService) GetAddressTransactionHistoryWithBypass(ctx context.Context, chainID int64, walletAddress string, limit int, ...) ([]map[string]interface{}, error)
- func (s *EtherscanService) GetQueueStats(ctx context.Context) (*QueueStats, error)
- type EtherscanWorker
- type FailedOrderInfo
- type PriorityQueueService
- func (s *PriorityQueueService) AssignLockPaymentOrder(ctx context.Context, order types.LockPaymentOrderFields) error
- func (s *PriorityQueueService) CreatePriorityQueueForBucket(ctx context.Context, bucket *ent.ProvisionBucket)
- func (s *PriorityQueueService) GetProviderRate(ctx context.Context, provider *ent.ProviderProfile, tokenSymbol string, ...) (decimal.Decimal, error)
- func (s *PriorityQueueService) GetProvisionBuckets(ctx context.Context) ([]*ent.ProvisionBucket, error)
- func (s *PriorityQueueService) ProcessBucketQueues() error
- type QueueStats
- type ReceiveAddressService
- type RequestContext
- type SlackService
- func (s *SlackService) SendActionFeedbackNotification(firstName, email, submissionID, actionType, reasonForDecline string) error
- func (s *SlackService) SendSubmissionNotification(firstName, email, submissionID string) error
- func (s *SlackService) SendUserSignupNotification(user *ent.User, scopes []string, providerCurrencies []string) error
- type TurnstileResponse
- type TurnstileService
- type WebhookInfo
- type WebhookListResponse
Constants ¶
const ERC20ABI = `` /* 7075-byte string literal not displayed */
ERC20ABI represents a standard ERC20 smart contract
Variables ¶
This section is empty.
Functions ¶
func GetEtherscanServiceStatus ¶ added in v0.1.0
func GetEtherscanServiceStatus() map[string]interface{}
GetEtherscanServiceStatus returns the current status of workers
func StopEtherscanWorkers ¶ added in v0.1.0
func StopEtherscanWorkers()
StopEtherscanWorkers stops all background workers gracefully
Types ¶
type APIKeyService ¶
type APIKeyService struct{}
APIKeyService provides functionality related to API keys.
func NewAPIKeyService ¶
func NewAPIKeyService() *APIKeyService
NewAPIKeyService creates a new instance of APIKeyService.
func (*APIKeyService) GenerateAPIKey ¶
func (s *APIKeyService) GenerateAPIKey( ctx context.Context, tx *ent.Tx, sender *ent.SenderProfile, provider *ent.ProviderProfile, ) (*ent.APIKey, string, error)
GenerateAPIKey generates a new API key for the user.
func (*APIKeyService) GetAPIKey ¶
func (s *APIKeyService) GetAPIKey( ctx context.Context, sender *ent.SenderProfile, provider *ent.ProviderProfile, ) (*types.APIKeyResponse, error)
GetAPIKey gets the API key for a user profile.
type BalanceHealthReport ¶ added in v0.0.5
type BalanceHealthReport struct {
ProviderID string `json:"providerId"`
CurrencyCode string `json:"currencyCode"`
AvailableBalance decimal.Decimal `json:"availableBalance"`
ReservedBalance decimal.Decimal `json:"reservedBalance"`
TotalBalance decimal.Decimal `json:"totalBalance"`
LastUpdated time.Time `json:"lastUpdated"`
Status string `json:"status"`
Severity string `json:"severity"`
Issues []string `json:"issues"`
Recommendations []string `json:"recommendations"`
}
BalanceHealthReport represents the result of a balance health check
type BalanceManagementService ¶ added in v0.0.2
type BalanceManagementService struct {
// contains filtered or unexported fields
}
BalanceManagementService handles provider balance operations
func NewBalanceManagementService ¶ added in v0.0.2
func NewBalanceManagementService() *BalanceManagementService
NewBalanceManagementService creates a new instance of BalanceManagementService
func (*BalanceManagementService) BulkCleanupFailedOrders ¶ added in v0.0.5
func (svc *BalanceManagementService) BulkCleanupFailedOrders(ctx context.Context, failedOrders []FailedOrderInfo) (*BulkCleanupReport, error)
BulkCleanupFailedOrders performs bulk cleanup of failed orders and releases associated balances This method is designed to be called from cleanup jobs or admin interfaces
func (*BalanceManagementService) CancelOrderAndReleaseBalance ¶ added in v0.0.5
func (svc *BalanceManagementService) CancelOrderAndReleaseBalance(ctx context.Context, orderID string, providerID string, currencyCode string, amount decimal.Decimal) error
CancelOrderAndReleaseBalance cancels an order and releases any reserved balance This method ensures atomic operation of order cancellation and balance release
func (*BalanceManagementService) CancelOrderAndReleaseBalanceWithinTransaction ¶ added in v0.0.5
func (svc *BalanceManagementService) CancelOrderAndReleaseBalanceWithinTransaction(ctx context.Context, orderID string, providerID string, currencyCode string, amount decimal.Decimal, tx *ent.Tx) error
CancelOrderAndReleaseBalanceWithinTransaction cancels an order and releases balance within an existing transaction This method is designed to be called from within another transaction to ensure atomicity
func (*BalanceManagementService) CheckBalanceHealth ¶ added in v0.0.5
func (svc *BalanceManagementService) CheckBalanceHealth(ctx context.Context, providerID string, currencyCode string) (*BalanceHealthReport, error)
CheckBalanceHealth performs a comprehensive health check on provider balances This method is designed to be called from monitoring systems or admin interfaces
func (*BalanceManagementService) CheckBalanceSufficiency ¶ added in v0.0.2
func (svc *BalanceManagementService) CheckBalanceSufficiency(ctx context.Context, providerID string, currencyCode string, amount decimal.Decimal) (bool, error)
CheckBalanceSufficiency checks if a provider has sufficient available balance for a given amount
func (*BalanceManagementService) FixBalanceInconsistencies ¶ added in v0.0.4
func (svc *BalanceManagementService) FixBalanceInconsistencies(ctx context.Context, providerID string, currencyCode string) error
FixBalanceInconsistencies automatically fixes common balance inconsistencies
func (*BalanceManagementService) GetProviderBalance ¶ added in v0.0.2
func (svc *BalanceManagementService) GetProviderBalance(ctx context.Context, providerID string, currencyCode string) (*ent.ProviderCurrencies, error)
GetProviderBalance retrieves the balance for a specific provider and currency
func (*BalanceManagementService) GetProviderBalances ¶ added in v0.0.2
func (svc *BalanceManagementService) GetProviderBalances(ctx context.Context, providerID string) ([]*ent.ProviderCurrencies, error)
GetProviderBalances retrieves all balances for a specific provider
func (*BalanceManagementService) HandleOrderTimeout ¶ added in v0.0.5
func (svc *BalanceManagementService) HandleOrderTimeout(ctx context.Context, orderID string, providerID string, currencyCode string, amount decimal.Decimal) error
HandleOrderTimeout handles order timeout scenarios with proper balance cleanup This method is designed to be called from background jobs or cleanup processes
func (*BalanceManagementService) ReleaseReservedBalance ¶ added in v0.0.2
func (svc *BalanceManagementService) ReleaseReservedBalance(ctx context.Context, providerID string, currencyCode string, amount decimal.Decimal, tx *ent.Tx) error
ReleaseReservedBalance releases a previously reserved amount If tx is provided, the operation will be performed within that transaction
func (*BalanceManagementService) ReserveBalance ¶ added in v0.0.2
func (svc *BalanceManagementService) ReserveBalance(ctx context.Context, providerID string, currencyCode string, amount decimal.Decimal, tx *ent.Tx) error
ReserveBalance reserves an amount from a provider's available balance If tx is nil, a new transaction will be created and committed
func (*BalanceManagementService) SafeReleaseBalance ¶ added in v0.0.5
func (svc *BalanceManagementService) SafeReleaseBalance(ctx context.Context, providerID string, currencyCode string, amount decimal.Decimal) error
SafeReleaseBalance safely releases reserved balance with comprehensive error handling This method is designed to be called from cleanup operations and should not fail the main flow
func (*BalanceManagementService) UpdateProviderBalance ¶ added in v0.0.2
func (svc *BalanceManagementService) UpdateProviderBalance(ctx context.Context, providerID string, currencyCode string, availableBalance, totalBalance, reservedBalance decimal.Decimal) error
UpdateProviderBalance updates the balance for a specific provider and currency
func (*BalanceManagementService) ValidateAndFixBalances ¶ added in v0.0.4
func (svc *BalanceManagementService) ValidateAndFixBalances(ctx context.Context, providerID string, currencyCode string) error
ValidateAndFixBalances validates and automatically fixes balance inconsistencies before operations
func (*BalanceManagementService) ValidateBalanceConsistency ¶ added in v0.0.4
func (svc *BalanceManagementService) ValidateBalanceConsistency(ctx context.Context, providerID string, currencyCode string) error
ValidateBalanceConsistency validates that provider balances are logically consistent
type BlockscoutService ¶ added in v0.1.0
type BlockscoutService struct {
// contains filtered or unexported fields
}
BlockscoutService provides functionality for interacting with Blockscout API
func NewBlockscoutService ¶ added in v0.1.0
func NewBlockscoutService() *BlockscoutService
NewBlockscoutService creates a new instance of BlockscoutService
func (*BlockscoutService) GetAddressTokenTransfers ¶ added in v0.1.1
func (s *BlockscoutService) GetAddressTokenTransfers(ctx context.Context, chainID int64, walletAddress string, limit int, fromBlock int64, toBlock int64) ([]map[string]interface{}, error)
GetAddressTokenTransfers fetches token transfer history for any address from Blockscout API
type BulkCleanupReport ¶ added in v0.0.5
type BulkCleanupReport struct {
TotalOrders int `json:"totalOrders"`
SuccessCount int `json:"successCount"`
FailureCount int `json:"failureCount"`
TotalAmount decimal.Decimal `json:"totalAmount"`
Errors []string `json:"errors"`
SuccessDetails []string `json:"successDetails"`
FailureDetails []string `json:"failureDetails"`
}
BulkCleanupReport represents the result of bulk cleanup operations
type EngineService ¶
type EngineService struct {
// contains filtered or unexported fields
}
EngineService provides functionality for interacting with the engine/thirdweb API
func NewEngineService ¶
func NewEngineService() *EngineService
NewEngineService creates a new instance of EngineService
func (*EngineService) CreateGatewayWebhook ¶
func (s *EngineService) CreateGatewayWebhook() error
CreateGatewayWebhook creates webhooks for gateway contract events across all supported chains for the environment
func (*EngineService) CreateServerWallet ¶
CreateServerWallet creates a new EIP-4337 smart contract account address
func (*EngineService) CreateTransferWebhook ¶
func (s *EngineService) CreateTransferWebhook(ctx context.Context, chainID int64, contractAddress string, toAddress string, orderID string) (string, string, error)
CreateTransferWebhook creates webhooks to listen to transfer events to a specific address on a specific chain
func (*EngineService) DeleteWebhook ¶
func (s *EngineService) DeleteWebhook(ctx context.Context, webhookID string) error
DeleteWebhook deletes a webhook by its ID
func (*EngineService) DeleteWebhookAndRecord ¶
func (s *EngineService) DeleteWebhookAndRecord(ctx context.Context, webhookID string) error
DeleteWebhookAndRecord deletes a webhook from thirdweb and removes the PaymentWebhook record from our database
func (*EngineService) GetAddressTransactionHistory ¶
func (s *EngineService) GetAddressTransactionHistory(ctx context.Context, chainID int64, walletAddress string, limit int, fromBlock int64, toBlock int64) ([]map[string]interface{}, error)
GetAddressTransactionHistory fetches transaction history for any address from thirdweb insight API
func (*EngineService) GetContractEvents ¶
func (s *EngineService) GetContractEvents(ctx context.Context, chainID int64, contractAddress string, payload map[string]string) ([]interface{}, error)
GetContractEvents fetches contract events
func (*EngineService) GetContractEventsRPC ¶
func (s *EngineService) GetContractEventsRPC(ctx context.Context, rpcEndpoint string, contractAddress string, fromBlock int64, toBlock int64, topics []string, txHash string) ([]interface{}, error)
GetContractEventsRPC fetches contract events using RPC for networks not supported by Thirdweb Insight It fetches all events and filters for specified event signatures (gateway events or transfer events)
func (*EngineService) GetContractEventsWithFallback ¶
func (s *EngineService) GetContractEventsWithFallback(ctx context.Context, network *ent.Network, contractAddress string, fromBlock int64, toBlock int64, topics []string, txHash string, eventPayload map[string]string) ([]interface{}, error)
GetContractEventsWithFallback tries RPC first and falls back to ThirdWeb if RPC fails
func (*EngineService) GetLatestBlock ¶
GetLatestBlock fetches the latest block number for a given chain ID
func (*EngineService) GetTransactionStatus ¶
func (s *EngineService) GetTransactionStatus(ctx context.Context, queueId string) (result map[string]interface{}, err error)
GetTransactionStatus gets the status of a transaction
func (*EngineService) GetWebhookByID ¶
func (s *EngineService) GetWebhookByID(ctx context.Context, webhookID string, chainID int64) (*WebhookInfo, error)
GetWebhookByID fetches a webhook by its ID from thirdweb
func (*EngineService) ParseUserOpErrorJSON ¶
func (s *EngineService) ParseUserOpErrorJSON(errorJSON map[string]interface{}) string
ParseUserOpErrorJSON parses a UserOperation error JSON and returns the decoded error string
func (*EngineService) SendTransactionBatch ¶
func (s *EngineService) SendTransactionBatch(ctx context.Context, chainID int64, address string, txPayload []map[string]interface{}) (queueID string, err error)
SendTransactionBatch sends a batch of transactions
func (*EngineService) UpdateWebhook ¶
func (s *EngineService) UpdateWebhook(ctx context.Context, webhookID string, webhookPayload map[string]interface{}) error
UpdateWebhook updates an existing webhook with new filters
func (*EngineService) WaitForTransactionMined ¶
func (s *EngineService) WaitForTransactionMined(ctx context.Context, queueId string, timeout time.Duration) (result map[string]interface{}, err error)
WaitForTransactionMined waits for a transaction to be mined
type ErrorType ¶ added in v0.1.0
type ErrorType int
ErrorType represents different types of errors for smart handling
type EtherscanRequest ¶ added in v0.1.0
type EtherscanRequest struct {
ID string `json:"id"`
ChainID int64 `json:"chain_id"`
WalletAddress string `json:"wallet_address"`
Limit int `json:"limit"`
FromBlock int64 `json:"from_block"`
ToBlock int64 `json:"to_block"`
CreatedAt time.Time `json:"created_at"`
Timeout int64 `json:"timeout"` // seconds
}
EtherscanRequest represents a queued Etherscan API request
type EtherscanResponse ¶ added in v0.1.0
type EtherscanResponse struct {
Data []map[string]interface{} `json:"data"`
Error error `json:"error"`
}
EtherscanResponse represents the response from Etherscan API
type EtherscanService ¶
type EtherscanService struct {
// contains filtered or unexported fields
}
EtherscanService provides functionality for interacting with Etherscan API
func NewEtherscanService ¶
func NewEtherscanService() (*EtherscanService, error)
NewEtherscanService creates a new instance of EtherscanService
func (*EtherscanService) GetAddressTransactionHistory ¶
func (s *EtherscanService) GetAddressTransactionHistory(ctx context.Context, chainID int64, walletAddress string, limit int, fromBlock int64, toBlock int64) ([]map[string]interface{}, error)
GetAddressTransactionHistory fetches transaction history for any address from Etherscan API
func (*EtherscanService) GetAddressTransactionHistoryImmediate ¶ added in v0.1.0
func (s *EtherscanService) GetAddressTransactionHistoryImmediate(ctx context.Context, chainID int64, walletAddress string, limit int, fromBlock int64, toBlock int64) ([]map[string]interface{}, error)
GetAddressTransactionHistoryImmediate fetches transaction history immediately without queuing
func (*EtherscanService) GetAddressTransactionHistoryWithBypass ¶ added in v0.1.0
func (s *EtherscanService) GetAddressTransactionHistoryWithBypass(ctx context.Context, chainID int64, walletAddress string, limit int, fromBlock int64, toBlock int64, bypassQueue bool) ([]map[string]interface{}, error)
GetAddressTransactionHistoryWithBypass fetches transaction history with option to bypass queue
func (*EtherscanService) GetQueueStats ¶ added in v0.1.0
func (s *EtherscanService) GetQueueStats(ctx context.Context) (*QueueStats, error)
GetQueueStats returns statistics about the Etherscan queue
type EtherscanWorker ¶ added in v0.1.0
type EtherscanWorker struct {
APIKey string
WorkerID int
RateLimit int
Interval time.Duration
Processed int64
Errors int64
ConsecutiveErrors int64
CircuitOpen bool
LastFailure time.Time
ExhaustedUntil time.Time
BackoffInterval time.Duration
Mutex sync.RWMutex
}
EtherscanWorker represents a worker with its own API key and rate limiting
type FailedOrderInfo ¶ added in v0.0.5
type FailedOrderInfo struct {
OrderID string `json:"orderId"`
ProviderID string `json:"providerId"`
CurrencyCode string `json:"currencyCode"`
Amount decimal.Decimal `json:"amount"`
FailureTime time.Time `json:"failureTime"`
}
FailedOrderInfo represents information about a failed order for cleanup
type PriorityQueueService ¶
type PriorityQueueService struct {
// contains filtered or unexported fields
}
func NewPriorityQueueService ¶
func NewPriorityQueueService() *PriorityQueueService
NewPriorityQueueService creates a new instance of PriorityQueueService
func (*PriorityQueueService) AssignLockPaymentOrder ¶
func (s *PriorityQueueService) AssignLockPaymentOrder(ctx context.Context, order types.LockPaymentOrderFields) error
AssignLockPaymentOrders assigns lock payment orders to providers
func (*PriorityQueueService) CreatePriorityQueueForBucket ¶
func (s *PriorityQueueService) CreatePriorityQueueForBucket(ctx context.Context, bucket *ent.ProvisionBucket)
CreatePriorityQueueForBucket creates a priority queue for a bucket and saves it to redis
func (*PriorityQueueService) GetProviderRate ¶
func (s *PriorityQueueService) GetProviderRate(ctx context.Context, provider *ent.ProviderProfile, tokenSymbol string, currency string) (decimal.Decimal, error)
GetProviderRate returns the rate for a provider
func (*PriorityQueueService) GetProvisionBuckets ¶
func (s *PriorityQueueService) GetProvisionBuckets(ctx context.Context) ([]*ent.ProvisionBucket, error)
GetProvisionBuckets returns a list of buckets with their providers
func (*PriorityQueueService) ProcessBucketQueues ¶
func (s *PriorityQueueService) ProcessBucketQueues() error
ProcessBucketQueues creates a priority queue for each bucket and saves it to redis
type QueueStats ¶ added in v0.1.0
type QueueStats struct {
QueueLength int64 `json:"queue_length"`
TotalProcessed int64 `json:"total_processed"`
TotalErrors int64 `json:"total_errors"`
ActiveWorkers int `json:"active_workers"`
RateLimit int `json:"rate_limit"`
WorkerActive bool `json:"worker_active"`
PendingRequests int `json:"pending_requests"`
RateLimitErrors int64 `json:"rate_limit_errors"`
DailyLimitErrors int64 `json:"daily_limit_errors"`
APIErrors int64 `json:"api_errors"`
NetworkErrors int64 `json:"network_errors"`
}
QueueStats represents statistics about the Etherscan queue and workers
type ReceiveAddressService ¶
type ReceiveAddressService struct {
// contains filtered or unexported fields
}
ReceiveAddressService provides functionality related to managing receive addresses
func NewReceiveAddressService ¶
func NewReceiveAddressService() *ReceiveAddressService
NewReceiveAddressService creates a new instance of ReceiveAddressService.
func (*ReceiveAddressService) CreateSmartAddress ¶
func (s *ReceiveAddressService) CreateSmartAddress(ctx context.Context, label string) (string, error)
CreateSmartAddress function generates and saves a new EIP-4337 smart contract account address
func (*ReceiveAddressService) CreateTronAddress ¶
CreateTronAddress generates and saves a new Tron address
type RequestContext ¶ added in v0.1.0
type RequestContext struct {
ID string
CreatedAt time.Time
Context context.Context
Cancel context.CancelFunc
Response chan *EtherscanResponse
Done chan struct{}
}
RequestContext tracks pending requests with proper lifecycle management
type SlackService ¶
type SlackService struct {
SlackWebhookURL string
}
func NewSlackService ¶
func NewSlackService(webhookURL string) *SlackService
func (*SlackService) SendActionFeedbackNotification ¶
func (s *SlackService) SendActionFeedbackNotification(firstName, email, submissionID, actionType, reasonForDecline string) error
SendActionFeedbackNotification sends a Slack notification for an action taken on a KYB submission
func (*SlackService) SendSubmissionNotification ¶
func (s *SlackService) SendSubmissionNotification(firstName, email, submissionID string) error
SendSubmissionNotification sends a Slack notification for a new KYB submission
func (*SlackService) SendUserSignupNotification ¶
func (s *SlackService) SendUserSignupNotification(user *ent.User, scopes []string, providerCurrencies []string) error
SendUserSignupNotification sends a Slack notification when a new user signs up
type TurnstileResponse ¶
type TurnstileResponse struct {
Success bool `json:"success"`
ErrorCodes []string `json:"error-codes,omitempty"`
ChallengeTS string `json:"challenge_ts,omitempty"`
Hostname string `json:"hostname,omitempty"`
}
TurnstileResponse represents the response from Cloudflare Turnstile verification
type TurnstileService ¶
type TurnstileService struct{}
TurnstileService handles Cloudflare Turnstile token validation
func NewTurnstileService ¶
func NewTurnstileService() *TurnstileService
NewTurnstileService creates a new instance of TurnstileService
func (*TurnstileService) VerifyToken ¶
func (s *TurnstileService) VerifyToken(token, remoteIP string) error
VerifyToken validates a Turnstile token with Cloudflare
type WebhookInfo ¶
type WebhookInfo struct {
ID string `json:"id"`
Name string `json:"name"`
WebhookURL string `json:"webhook_url"`
WebhookSecret string `json:"webhook_secret"`
Disabled bool `json:"disabled"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
ProjectID string `json:"project_id"`
Filters map[string]interface{} `json:"filters"`
}
WebhookInfo represents a webhook from thirdweb API
type WebhookListResponse ¶
type WebhookListResponse struct {
Data []WebhookInfo `json:"data"`
Meta struct {
Page int `json:"page"`
Limit int `json:"limit"`
TotalItems int `json:"total_items"`
TotalPages int `json:"total_pages"`
} `json:"meta"`
}
WebhookListResponse represents the response from GET /v1/webhooks