Skip to content

createSdk

创建 SDK 实例的主工厂函数。

签名

ts
function createSdk(config: OCashSdkConfig): OCashSdk

参数

OCashSdkConfig

ts
interface OCashSdkConfig {
  chains: ChainConfigInput[];
  assetsOverride?: AssetsOverride;
  cacheDir?: string;
  runtime?: 'auto' | 'browser' | 'node' | 'hybrid';
  storage?: StorageAdapter;
  merkle?: { mode?: 'remote' | 'local' | 'hybrid'; treeDepth?: number };
  sync?: { pageSize?: number; pollMs?: number; requestTimeoutMs?: number; retry?: { ... } };
  onEvent?: (event: SdkEvent) => void;
}

返回值

OCashSdk

模块类型说明
coreCoreApiWASM 桥接、电路加载
keysKeyManager密钥派生、地址转换
cryptoCryptoToolkit承诺、nullifier、memo
assetsAssetsApi链/代币/relayer 配置
storageStorageAdapter持久化层
walletWalletApi会话、UTXO、余额
syncSyncApiEntry/Merkle 同步
merkleMerkleApiMerkle 证明、证人
plannerPlannerApi币选择、费用估算
zkpZkpApi证人/证明生成
txTxBuilderApi交易构建器
opsOpsApi端到端编排

示例

ts
import { createSdk } from '@ocash/sdk';

const sdk = createSdk({
  chains: [{
    chainId: 11155111,
    entryUrl: 'https://entry.example.com',
    ocashContractAddress: '0x...',
    relayerUrl: 'https://relayer.example.com',
    tokens: [],
  }],
  onEvent: console.log,
});

await sdk.core.ready();
await sdk.wallet.open({ seed: '...' });
const balance = await sdk.wallet.getBalance({ chainId: 11155111 });