方法

pub(authorize.tabV2)

向钱包扩展请求授权,允许dApp连接。

请求

web3Enable("your-dapp-name");

响应

true | false

示例

import { web3Enable } from '@polkadot/extension-dapp';

const extensions = await web3Enable('my-dapp');
// 至少一个扩展授权则返回 true

pub(accounts.list) | pub(accounts.listV2)

获取钱包扩展中所有可用账户列表。

请求

无请求参数

响应

[
  {
    address: string;
    name: string;
    type: "sr25519" | "ed25519" | "ecdsa";
    genesisHash?: string;
  }
]

示例

const provider = await window.injectedWeb3['subwallet-js'].enable('test');
const accounts = await provider.accounts.get();
console.log(accounts);

// [
//   {
//     "address": "5HnGJmptAE1KL9GyARcqjq2xj2ALXN1Dfx8BuhfFGYAZVaT1",
//     "genesisHash": "",
//     "name": "test123",
//     "type": "sr25519"
//   }
// ]

pub(accounts.subscribe)

实时监听账户变化——当用户在扩展中增删账户或切换链(genesisHash)时触发。

请求

无

响应

[
  {
    address: string;
    name: string;
    type: "sr25519" | "ed25519" | "ecdsa";
    genesisHash?: string;
  }
]

示例

provider.accounts.subscribe((accounts) => {
  console.log('账户已更新:', accounts);
});

pub(metadata.list)

返回钱包已缓存的所有链元数据。

请求

无

响应

{
  genesisHash: string;
  specVersion: number;
}

pub(metadata.provider)

接收dApp主动推送的链元数据。

不支持: 钱包不接收dApp主动推送的元数据。


pub(extrinsic.sign)

对Substrate外部调用(extrinsic)进行签名,请求为JSON结构体。

请求

{
  specVersion: string;
  transactionVersion: string;
  address: string;
  assetId: null | string;
  blockHash: string;
  blockNumber: string;
  era: string;
  genesisHash: string;
  metadataHash: null | string;
  method: string;
  mode: number;
  nonce: string;
  signedExtensions: string[];
  tip: string;
  version: number;
  withSignedTransaction: boolean;
}

响应

{
  signature: HexString;
}

示例

// 请求
{
  "specVersion": "0x000f5d99",
  "transactionVersion": "0x0000001a",
  "address": "16iZT75x21GnmgHV84fqsys7ae9zDfZMkSrg4zebpdC5g44G",
  "blockHash": "0x6ed16c5a06bdd1044852e1d772bac5a25054018f8af7407b04c1d6b3f99b14a6",
  "nonce": "0x00000000",
  "version": 4
}

// 响应
{
  "signature": "0x01b6b00e69ff7f4d1f161178b6b029a075e63334a0e848c664711646be1afe8145..."
}

pub(bytes.sign)

对任意字节数据或payload进行签名。

请求

{
  address: string;       // SS58编码地址
  type: 'bytes' | 'payload';
  data: string;          // 十六进制编码的数据
}

响应

{
  signature: HexString;
}

示例

const result = await provider.bytes.sign({
  address: "5HnGJmptAE1KL9GyARcqjq2xj2ALXN1Dfx8BuhfFGYAZVaT1",
  type: "bytes",
  data: "0x48656c6c6f"
});
console.log(result.signature);
Copyright © 2026 Cactus Custody all right reserved,powered by GitbookUpdated: 30-Jun-2026 02:04:30

results matching ""

    No results matching ""

    results matching ""

      No results matching ""