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 导出的类型定义为准。