@ edge- markets/ 连接
EDGE Connect SDK的核心类型,配置,和公用事业.
安装
npm install @edge-markets/connect
# or
pnpm add @edge-markets/connect
# or
yarn add @edge-markets/connect
使用量
类型
API 回复和请求的导入类型 :
import type {
User,
Balance,
Transfer,
EdgeTokens,
EdgeWebhookEvent,
} from '@edge-markets/connect'
// Types are generated from the OpenAPI spec
const user: User = {
id: '507f1f77bcf86cd799439011',
email: '[email protected]',
firstName: 'John',
lastName: 'Doe',
verified: true,
createdAt: '2024-01-15T10:30:00.000Z',
}
Webhook活动
EdgeWebhookEvent 歧视的结合 event.type 覆盖每个
事件。 切换窄口 event.data 选择
变式——无铸造:
import type { EdgeWebhookEvent } from '@edge-markets/connect'
function handle(event: EdgeWebhookEvent) {
switch (event.type) {
case 'transfer.completed':
// event.data is { transferId, status: 'completed', type, amount }
console.log(`completed: ${event.data.transferId} for ${event.data.amount}`)
break
case 'transfer.failed':
// event.data.reason is `string | undefined`
console.log(`failed: ${event.data.reason ?? 'unknown'}`)
break
case 'transfer.expired':
console.log(`expired: ${event.data.transferId}`)
break
case 'transfer.processing':
// @experimental — reserved for ledger dual-write hand-off
break
case 'consent.revoked':
console.log(`consent revoked: ${event.data.userId}`)
break
default: {
const _exhaustive: never = event
return _exhaustive
}
}
}
event.data.amount故意输入为:string(例如:.'100.00'改为: 保持小数精确。 以小数感知库在你的一边分析.
HMAC 实时 HTTP 传输通道上的 HMAC 签名验证, 使用
verifyWebhookSignature 从 @edge-markets/connect-node用于
核对投票、使用 EdgeConnectServer.syncWebhookEvents。 。 。 .
配置
获取特定环境的 URL :
import {
getEnvironmentConfig,
getLinkUrl,
EDGE_SCOPES,
formatScopeForEnvironment,
} from '@edge-markets/connect'
const config = getEnvironmentConfig('sandbox')
console.log(config.apiBaseUrl) // https://...
console.log(getLinkUrl('sandbox')) // https://sandbox-oauth.staging-app.edgeboost.io/oauth/link
// Format scopes for your environment
const scopes = formatScopeForEnvironment(EDGE_SCOPES.BALANCE_READ, 'sandbox')
// Returns: 'edge-connect-sandbox/balance.read'
处理错误
特定情景的打出错误类别 :
import {
EdgeError,
EdgeConsentRequiredError,
isConsentRequiredError,
} from '@edge-markets/connect'
try {
const client = edge.forUser(accessToken)
const balance = await client.getBalance()
} catch (error) {
if (isConsentRequiredError(error)) {
// User needs to grant consent - redirect to EdgeLink
console.log(`Consent required for client: ${error.clientId}`)
} else if (error instanceof EdgeError) {
// Handle other SDK errors
console.error(`Error [${error.code}]: ${error.message}`)
}
}
出口
类型
| 类型 | 说明 |
|---|---|
User | 用户配置信息 |
Balance | 账户余额 |
Transfer | 转移响应 |
TransferListItem | 清单上的转让 |
EdgeTokens | 证书 |
EdgeLinkSuccess | 成功链接结果 |
EdgeLinkExit | 链接退出元数据 |
EdgeWebhookEvent | 在网络活动类型上的歧视结合 |
TransferCompletedEventData | 有效载荷 transfer.completed |
TransferFailedEventData | 有效载荷 transfer.failed (包括可选) reason(中文(简体) ) |
TransferExpiredEventData | 有效载荷 transfer.expired |
ConsentRevokedEventData | 有效载荷 consent.revoked |
EDGE_WEBHOOK_EVENT_TYPES | 所有已知事件类型字符串的运行时间拖转 |
配置
| 导出 | 说明 |
|---|---|
EDGE_ENVIRONMENTS | 所有环境配置 |
getEnvironmentConfig(env) | 获取环境配置 |
EDGE_SCOPES | 可用的 OAuth 范围 |
ACTIVE_EDGE_SCOPES | 允许当前伙伴一体化的范围 |
ALL_EDGE_SCOPES | 目前所有可请求范围均不使用 |
RESERVED_EDGE_SCOPES | 不应请求的仅未来范围 |
formatScopeForEnvironment(scope, env) | 认知格式范围 |
错误
| 错误 | 扔的时候 |
|---|---|
EdgeError | 基础错误类 |
EdgeAuthenticationError | 无效/ 过期的令牌 |
EdgeConsentRequiredError | 用户没有同意 |
EdgeApiError | API 请求失败 |
EdgePopupBlockedError | 弹出被封锁 |
类型警卫
isEdgeError(error) // Any SDK error
isConsentRequiredError(error) // Consent needed
isAuthenticationError(error) // Auth failed
isApiError(error) // API error
相关软件包
@edge-markets/connect-link- 用于弹出认证的浏览器 SDK@edge-markets/connect-node- 用于交换和API的服务器SDK
许可证
麻省理工学院