Skip to Content
2. API

API

本页仅覆盖 docs/spec-0.1_publish.md 对外发布版中已明确的 v0.1 能力与语义。

初始化

import { PHSDK } from "@playsout/hybrid-sdk"; const sdk = await PHSDK.init({ pay: { productMapping }, });

productMapping

商品配置决定 token / 金额 / 链 / 收款方;前端只传 productId

示例见:Examples

Pay

sdk.pay.purchase({ productId })

发起 ERC20 转账购买。

const result = await sdk.pay.purchase({ productId: "coin_pack_1" });

返回:

{ status: "SUBMITTED" | "CONFIRMED" | "FAILED" | "REJECTED"; txHash?: string; productId: string; }

sdk.pay.getEntitlements()

查询本地权益(Phase 1:Local Entitlements)。

const { entitlements } = await sdk.pay.getEntitlements();

示例返回(结构示意):

{ "entitlements": [ { "id": "remove_ads", "type": "non_consumable", "active": true }, { "id": "coin_pack_1", "type": "consumable", "balance": 2000 } ] }

Wallet

sdk.wallet.getAccounts()

获取账户列表(地址身份)。

const accounts = await sdk.wallet.getAccounts();

sdk.wallet.getChainId()

获取当前链。

const chainId = await sdk.wallet.getChainId();

sdk.wallet.switchChain(chainId)

自动切链(若钱包支持)。

await sdk.wallet.switchChain(8453);

Env

sdk.env.getCapabilities()

用于在运行时判断宿主是否支持某些模块/方法(推荐在关键路径前调用)。

const caps = await sdk.env.getCapabilities();

UI (可选)

UI 能力由宿主决定,SDK 仅做能力声明与 fallback。

await sdk.ui.toast?.("Payment submitted");

Events

sdk.on(eventName, handler)

监听钱包账户/链变化:

sdk.on("wallet.accountsChanged", ({ accounts }) => console.log(accounts)); sdk.on("wallet.chainChanged", ({ chainId }) => console.log(chainId));

若你的 SDK 构建提供 sdk.off,可用于移除监听;具体以 SDK 导出的类型定义为准。