Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion content/2.Web/0.index.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,5 @@ const user = sbtauth.getUserInfo()
```

## 5. 使用 SBTAuth Wallet
SBTAuth 提供标准的 EIP1193 Provider API。建议通过 `ethersjs` 方便的使用 SBTAuth Provider,[快速了解](/web/provider)。
SBTAuth 提供标准的 EIP1193 Provider API。建议通过 `ethersjs` 方便的使用 SBTAuth Provider,[快速了解](/web/provider)。
Solana 支持请参考 [Solana 钱包](/web/solana-provider)。
51 changes: 33 additions & 18 deletions content/2.Web/1.wallet.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
本文档帮助您使用 SBTAuth 实现完整登录功能。

## 快速开始

1. 安装 SBTAuth

::code-group
Expand Down Expand Up @@ -71,9 +72,12 @@ if (!status) {
在用户已登录时,可以通过调用 sbtauth.init() 初始化 sbtauth 。

```typescript
try {
await sbtauth.init();
} catch (error) {}
await sbtauth.init();
```
如果需要创建 Solana 钱包,可以通过在 init 方法中添加参数初始化 Solana 钱包。

```typescript
await sbtauth.init(Chain.solana)
```

4. 获取用户信息
Expand Down Expand Up @@ -107,38 +111,49 @@ if (user.backupPrivateKey) {
```

## 恢复本地私钥

用户登录完成后,如果 sbtauth.status 为 logined 时,说明用户本地私钥碎片丢失,可以通过其他设备或者邮箱备份碎片进行恢复。
通过已登录设备恢复
1. 新设备获取用户已登录设备列表

1. 新设备获取用户已登录设备列表

```typescript
const devices = await sbtauth.api.getUserDeviceList()
const devices = await sbtauth.api.getUserDeviceList();
```
2. 用户选择已登录设备后,发送授权请求

2. 用户选择已登录设备后,发送授权请求

```typescript
await sbtauth.api.sendAuthRequest(device) // Device 为用户选择设备
await sbtauth.api.sendAuthRequest(device); // Device 为用户选择设备
```
3. 旧设备收到请求后同意授权,显示六位授权码

3. 旧设备收到请求后同意授权,显示六位授权码

```typescript
sbtauth.onAuthRequest((device: string, ip: stirng) => {
// 打开授权页面
})
const verifyCode = await sbtauth.approveAuthRequest(deviceName)
// 打开授权页面
});
const verifyCode = await sbtauth.approveAuthRequest(deviceName);
```
4. 新设备输入授权码恢复

4. 新设备输入授权码恢复

```typescript
await sbtauth.recoverWithDevice(verifyCode)
await sbtauth.recoverWithDevice(verifyCode);
```

通过邮箱备份恢复, 需要用户输入邮箱备份私钥及安全密码。

```typescript
const privateKey = '' // 需用户输入
const password = '' // 需用户输入
await sbtauth.recoverWidthBackup(privateKey, password)
const privateKey = ""; // 需用户输入
const password = ""; // 需用户输入
await sbtauth.recoverWidthBackup(privateKey, password);
```

## API

SBTAuth 提供两类接口。

* SBTAuth 相关接口,通过调用 `sbtauth.api` 访问。
- SBTAuth 相关接口,通过调用 `sbtauth.api` 访问。

* Web3.0 相关接口,用于获取用户余额等,通过调用 `sbtauth.web3Api` 访问。
- Web3.0 相关接口,用于获取用户余额等,通过调用 `sbtauth.web3Api` 访问。
6 changes: 3 additions & 3 deletions content/2.Web/2.provider.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# 连接至 SBTAuth 钱包
# 使用 SBTAuth 钱包

本文档帮助您连接至 SBTAuth 钱包。
本文档帮助您使用 `SBTAuth` 钱包。

SBTAuth 提供标准的 EIP1193 Provider API。

## 1. 获取钱包 Provider
如果已经通过 sbtauth 登录,可以从 sbtauth.provider 获取 provider。
如果已经通过 sbtauth 登录,可以从 `sbtauth.provider` 获取 provider。
```typescript
// 从 sbtauth 获取钱包 Provider
const provider = sbtauth.provder
Expand Down
39 changes: 39 additions & 0 deletions content/2.Web/3.solana-provider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

# 使用 Solana 钱包

建议优先安装 `@solana/web3.js`。
::code-group
```bash [Yarn]
yarn add @solana/web3.js
```
```bash [NPM]
npm install @solana/web3.js
```
::

## 1. 获取钱包 Provider
如果已经通过 sbtauth 登录,可以从 `sbtauth.provider` 获取 provider。
```typescript
const provider = sbtauth.solanaProvider
```
## 2.消息签名
通过 `signMessage` 方法实现消息签名。

```typescript
const signature = await sbtauth.solanaProvider!.signMessage("Hello world");
```

## 3.发送交易

```typescript
import { PublicKey, SystemProgram, Transaction } from '@solana/web3.js'

const transaction = new Transaction().add(
SystemProgram.transfer({
fromPubkey: sbtauth.solanaProvider!.publicKey!,
toPubkey: new PublicKey("Bzq4zZ7KX9q4zZ7KX9q4zZ7KX9q4zZ7KX9q4zZ7KX9q"),
lamports: 1_000_000,
})
);
const signature = await sbtauth.solanaProvider!.sendTransaction(transaction);
```