mirror of
https://github.com/hanzo-fi/payments.git
synced 2026-10-30 20:31:20 +00:00
* feat: commit * feat: Update connectors * chore: review code * fix: align Coinbase Prime client with actual API contract - Remove query string from HMAC signature (match official SDK) - Use raw API secret bytes instead of base64-decoding - Change TransferFrom/TransferTo from string to *TransferEndpoint struct - Map all 35 transaction types to correct payment types (PAYIN/PAYOUT/TRANSFER/OTHER) - Fix status mapping: TRANSACTION_DONE (not fictional TRANSACTION_COMPLETED) - Add CANCELLED/REJECTED/EXPIRED to failed statuses - Use transfer_from/transfer_to endpoints with walletID fallback for account refs * fix(e2e): use polling outbox check in setupV3PoolAccounts to fix race condition MustOutbox performs a single instant check which is flaky when plugin initialization adds latency. Switch to MustEventuallyOutbox (5s polling) to match setupV2PoolAccounts behavior. * fix(coinbase): fix HMAC signing, pagination, symbol normalization and observability - Base64-decode API secret before HMAC computation (was using raw string) - Include query params in signed message via RequestURI() - Loop through all pages in GetBalancesForSymbol instead of single page - Normalize currency symbols to uppercase before lookup - Add otelhttp transport for OpenTelemetry tracing - Include ErrorResponse.Message in API error strings - Use req.PageSize instead of hardcoded PAGE_SIZE in balances - Capture time.Now() once before balance loop - Add base64 validation on APISecret config field - Add format:password and align pageSize default in OpenAPI schema - Reclassify INTERNAL_DEPOSIT/INTERNAL_WITHDRAWAL as TRANSFER - Make fetch_balances periodic in workflow * fix(tests): stabilize outbox assertions and make metrics registry thread-safe * fix(coinbase): address review feedback for balances and test stability * fix(testserver): make outbox polling window robust for e2e timing * fix(coinbase): address PR review feedback on metadata, status mapping, and DefaultAsset Remove redundant metadata from payments (already in Raw), refine transaction status mapping to use CANCELLED/EXPIRED/OTHER, remove symbol from account metadata, and derive wallet symbol from DefaultAsset instead of metadata/raw fallback in balances. * fix(coinbase): enumerate all pending statuses and use UNKNOWN as default Explicitly list all Coinbase pending transaction statuses, map OTHER_TRANSACTION_STATUS to OTHER, and default to UNKNOWN for unrecognized statuses (including TRANSACTION_RETRIED). * feat: Update * feat: Switch name to Coinbase Prime
3.0 KiB
3.0 KiB
V3InstallConnectorRequest
Supported Types
V3AdyenConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestAdyen(components.V3AdyenConfig{/* values here */})
V3AtlarConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestAtlar(components.V3AtlarConfig{/* values here */})
V3BankingcircleConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestBankingcircle(components.V3BankingcircleConfig{/* values here */})
V3CoinbaseprimeConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestCoinbaseprime(components.V3CoinbaseprimeConfig{/* values here */})
V3ColumnConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestColumn(components.V3ColumnConfig{/* values here */})
V3CurrencycloudConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestCurrencycloud(components.V3CurrencycloudConfig{/* values here */})
V3DummypayConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestDummypay(components.V3DummypayConfig{/* values here */})
V3FireblocksConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestFireblocks(components.V3FireblocksConfig{/* values here */})
V3GenericConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestGeneric(components.V3GenericConfig{/* values here */})
V3IncreaseConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestIncrease(components.V3IncreaseConfig{/* values here */})
V3MangopayConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestMangopay(components.V3MangopayConfig{/* values here */})
V3ModulrConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestModulr(components.V3ModulrConfig{/* values here */})
V3MoneycorpConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestMoneycorp(components.V3MoneycorpConfig{/* values here */})
V3PlaidConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestPlaid(components.V3PlaidConfig{/* values here */})
V3PowensConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestPowens(components.V3PowensConfig{/* values here */})
V3QontoConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestQonto(components.V3QontoConfig{/* values here */})
V3StripeConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestStripe(components.V3StripeConfig{/* values here */})
V3TinkConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestTink(components.V3TinkConfig{/* values here */})
V3WiseConfig
v3InstallConnectorRequest := components.CreateV3InstallConnectorRequestWise(components.V3WiseConfig{/* values here */})