Skip to content

Commit 2ea8bb3

Browse files
Merge pull request #32 from everFinance/feat/add-everid-docs
Feat/add everid docs
2 parents cf72e51 + 7e488d8 commit 2ea8bb3

21 files changed

+295
-96
lines changed

docs/guide/SDK/everpay-js.md

Lines changed: 75 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,49 @@ const everpay = new Everpay()
6363

6464
## 创建 Everpay 实例
6565

66+
### 智能账户连接
67+
68+
极为简单与方便。
69+
70+
#### 1. 使用包管理
71+
72+
(1)安装 [everpay-js](./everpay-js.md#安装)
73+
74+
<Tabs>
75+
<TabItem value="yarn" label="yarn" default>
76+
77+
```bash
78+
yarn add everpay
79+
```
80+
81+
</TabItem>
82+
<TabItem value="npm" label="npm">
83+
84+
```bash
85+
npm install everpay
86+
```
87+
88+
</TabItem>
89+
</Tabs>
90+
91+
(2)引入 everpay-js 和 ethers 进行创建。
92+
93+
```js
94+
import Everpay from 'everpay'
95+
96+
const account = await new Everpay().smartAccountAuth('https://app-dev.permaswap.network/permalogo.svg')
97+
const everpay = new Everpay({
98+
account,
99+
isSmartAccount: true
100+
})
101+
```
102+
66103
### 以太坊钱包连接
67104

68105
- 创建时可选择性注入 `ethConnectedSigner``chainType` 等配置项。
69106
- 开发者需安装并使用 [ethers.js](https://github.com/ethers-io/ethers.js) 进行创建。
70107
- 请下载 [MetaMask](https://metamask.io/) 或 其他以太坊钱包。
108+
71109
#### 1. 使用包管理器
72110

73111
(1)安装 [everpay-js](./everpay-js.md#安装)[ethers.js](https://github.com/ethers-io/ethers.js)
@@ -90,6 +128,7 @@ npm install everpay ethers@5.4.0
90128
</Tabs>
91129

92130
(2)引入 everpay-js 和 ethers 进行创建。
131+
93132
```js
94133
import Everpay from 'everpay'
95134
import { ethers } from 'ethers'
@@ -103,7 +142,9 @@ const everpay = new Everpay({
103142
ethConnectedSigner: signer
104143
})
105144
```
145+
106146
---
147+
107148
#### 2. 通过 CDN 方式连接以太坊钱包
108149

109150
(1)创建 `index.html` 文件并引入 [everpay-js](https://www.jsdelivr.com/package/npm/everpay?nav=config)[ethers](https://www.jsdelivr.com/package/npm/ethers?nav=config&version=5.4.0) 的 CDN 链接。
@@ -141,14 +182,17 @@ ethRun()
141182
```
142183

143184
:::info
185+
144186
- 确保 `钱包已连接` 并且 `连接到当前站点`
145187
- [debug 环境配置](./everpay-js/configuration/debug.md)
146188
- [account 配置](../dive/account-model.md) & [chainType 配置项](./everpay-js/types.md#chaintype)
147189
- `ethConnectedSigner` 的更多创建方式,可浏览 [SDK - everpay-js - 配置项 - `ethConnectedSigner`](./everpay-js/configuration/ethConnectedSigner)
148190
- CDN 方式创建 Everpay 实例时,需要添加 `default` : `new window.Everpay.default({})`
149191
- 确保 `ethers CDN链接``everPay CDN链接` 优先加载完成,否则 `ethers is not defined``Everpay is not defined`
150192
:::
193+
151194
---
195+
152196
### Arweave 钱包连接
153197

154198
- 创建需要注入 `arJWK`,当使用浏览器 [ArConnect](https://arconnect.io/) 钱包时,注入 `arJWK: 'use_wallet'` 即可。
@@ -176,6 +220,7 @@ npm install everpay
176220
</Tabs>
177221

178222
(2)引入 everpay-js 进行创建。
223+
179224
```ts
180225
import Everpay from 'everpay'
181226

@@ -217,26 +262,33 @@ const arRun = async () => {
217262
arRun()
218263
</script>
219264
```
265+
220266
:::info
221-
* 确保钱包已连接并授权,[查看授权方式](./everpay-js/configuration/arJWK.md#浏览器--arconnect)[查看授权类型](https://github.com/arconnectio/ArConnect#connectpermissions-appinfo-gateway)
222-
* [debug 环境配置](./everpay-js/configuration/debug.md)
223-
* [chainType 配置项](./everpay-js/types#chaintype)
224-
* `arJWK` 也支持私钥格式,可浏览 [SDK - everpay-js - 配置项 - `arJWK`](./everpay-js/configuration/arJWK) 进行配置。
225-
* CDN 方式创建 Everpay 实例时,需要添加 `default` : `new window.Everpay.default({})`
226-
* 确保 `everPay CDN链接` 优先加载完成,否则 `Everpay is not defined`
267+
268+
- 确保钱包已连接并授权,[查看授权方式](./everpay-js/configuration/arJWK.md#浏览器--arconnect)[查看授权类型](https://github.com/arconnectio/ArConnect#connectpermissions-appinfo-gateway)
269+
- [debug 环境配置](./everpay-js/configuration/debug.md)
270+
- [chainType 配置项](./everpay-js/types#chaintype)
271+
- `arJWK` 也支持私钥格式,可浏览 [SDK - everpay-js - 配置项 - `arJWK`](./everpay-js/configuration/arJWK) 进行配置。
272+
- CDN 方式创建 Everpay 实例时,需要添加 `default` : `new window.Everpay.default({})`
273+
- 确保 `everPay CDN链接` 优先加载完成,否则 `Everpay is not defined`
227274
:::
275+
228276
---
229277

230278
:::tip 成功啦
279+
231280
- 根据上面的步骤,我们已经完成了 Everpay 实例的创建了,接下来一起完成充值、转账、提现。
232281
:::
233282

234283
## 充值
284+
235285
everPay 实例创建成功后,可通过 `deposit` 方法,将 `Arweave`, `Ethereum` 等链上资产存入 everPay。
236286

237287
填写充值所需要的 `token tag``amount`,调用下面的接口完成充值:
238-
* `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
239-
* `amount` : 数额。
288+
289+
- `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
290+
- `amount` : 数额。
291+
240292
```js
241293
everpay
242294
.deposit({
@@ -252,15 +304,19 @@ everpay
252304
- Ethereum 充值需要等待 6 个区块,Arweave 充值需要等待 15 个区块。
253305
- everPay 支持 AR 跨链,初始化注入 `ethConnectedSigner` 则充值调用的是 WAR(ERC20),初始化注入 `arJWK` 则充值调用的是 AR(native)。
254306
:::
307+
255308
---
309+
256310
## 转账
311+
257312
everPay 实例创建成功后,可通过 `transfer` 方法,对当前 `账户(account)` 已拥有的 `资产(token)` 进行 everPay 转账。
258313

259314
填写转账所需要的 `token tag``amount``to`,调用下面的接口完成转账:
260315

261-
* `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
262-
* `amount` : 数额。
263-
* `to` : `everPay` 的收款方地址,详情可见 [账户模型](../dive/account-model.md)
316+
- `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
317+
- `amount` : 数额。
318+
- `to` : `everPay` 的收款方地址,详情可见 [账户模型](../dive/account-model.md)
319+
264320
```js
265321
everpay
266322
.transfer({
@@ -272,18 +328,22 @@ everpay
272328
```
273329

274330
:::danger
331+
275332
- 请注意:你正在操作转账的是 everPay 网络上的资产,请不要转账到交易所地址,或合约地址,否则您的资产将无法找回!
276333
:::
334+
277335
---
336+
278337
## 提现
338+
279339
everPay 实例创建成功后,可通过 `withdraw` 方法,对当前 `账户(account)` 已拥有的 `资产(token)` 进行 everPay 提现。将 everPay 中的 `资产(token)` 提到原生链地址中。
280340

281341
填写需要提现的 `token tag``amount``chainType``to`,调用下面的接口完成提现:
282342

283-
* `token tag` : 唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
284-
* `amount` : 数额。
285-
* `chainType` : [chainType 原生链](./everpay-js/types.md#chaintype)
286-
* `to` : `everpay` 收款方地址,详情可见 [账户模型](../dive/account-model.md)
343+
- `token tag` : 唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
344+
- `amount` : 数额。
345+
- `chainType` : [chainType 原生链](./everpay-js/types.md#chaintype)
346+
- `to` : `everpay` 收款方地址,详情可见 [账户模型](../dive/account-model.md)
287347

288348
```js
289349
everpay

docs/guide/SDK/everpay-js/configuration/account.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,21 @@ sidebar_position: 3
55
# account
66

77
## 配置项功能
8+
89
* account 为 everPay 账户地址,详情可见[`账户模型`](../../../dive/account-model.md)
910
* 当调用 everpay-js [`基础查询API`](../basic-api/intro) 时,此 `account` 配置项作为默认的 account 参数,传递给 基础查询API。
10-
* 当调用 everpay-js [`操作类API`](../operation-api/intro) 、(everpay充值、转账、提现)时,此 `account` 配置项 **必须传递,并且满足如下钱包地址之一**
11+
* 当调用 everpay-js [`操作类API`](../operation-api/intro) 、(everpay充值、转账、提现)时,此 `account` 配置项 **必须传递**
12+
* 智能账户模型:
13+
* 必须通过 [`smartAccountAuth`](../tool-api/smartAccountAuth.md) 获取,确保与 <https://beta.everpay.io> 登录的账户一致。
14+
* 必须配置 [`isSmartAccount`](./isSmartAccount.md)`true`
15+
* 区块链账户模型,必须满足如下钱包地址之一:
1116
* 与 ethConnectedSigner 对应的 ethereum 钱包地址一致。
1217
* 与 arJWK 对应的 arweave 钱包地址一致。
1318

1419
## 基础查询API 示例
1520

1621
### 默认查询 account 对应的基础信息
22+
1723
```js
1824
const everpay = new Everpay({
1925
debug: false, // 默认开启正式环境
@@ -26,6 +32,7 @@ everpay.balance({
2632
```
2733

2834
### 查询另一个 account 对应的基础信息
35+
2936
```js
3037
const everpay = new Everpay({
3138
debug: false,
@@ -46,4 +53,5 @@ everpay.balance({
4653
```
4754

4855
## 操作类API 示例
49-
详见 [ethConnectedSigner](./ethConnectedSigner)[arJWK](./arJWK) 配置项。
56+
57+
详见 [ethConnectedSigner](./ethConnectedSigner)[arJWK](./arJWK) 配置项。

docs/guide/SDK/everpay-js/configuration/chainType.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sidebar_position: 5
2+
sidebar_position: 6
33
---
44

55
# chainType
@@ -41,6 +41,7 @@ everpay.deposit({
4141
console.log('ethTx', ethTx)
4242
})
4343
```
44+
4445
:::danger 私钥泄漏风险
4546
此方式在代码中明文传递私钥,存在安全风险。
4647
:::

docs/guide/SDK/everpay-js/configuration/ethConnectedSigner.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
sidebar_position: 5
2+
sidebar_position: 6
33
---
44

55
# ethConnectedSigner
66

77
## 配置项功能
88

9-
此配置项用于通过 ethereum/moonbeam/moonbase 钱包,来操作 everPay `ethereum 账户模型` 的 账户,对该账户进行:
9+
此配置项用于通过 ethereum/moonbeam/moonbase 等 evm 钱包,来操作 everPay `ethereum 账户模型` 的 账户,对该账户进行:
1010

1111
* 充值:使用 `ethConnectedSigner` 进行 ethereum 转账 至 everPay 多签合约地址。
1212
* 转账:使用 `ethConnectedSigner` 进行 ethereum `personalSign` 签名,来确保该 everPay 账户的操作权限。
@@ -52,9 +52,14 @@ const everpay = new Everpay({
5252
此方式在代码中明文传递私钥,存在安全风险
5353
:::
5454

55-
## 与 arJWK 配置项的冲突
55+
## isSmartAccount、arJWK 配置项的冲突
5656

57-
`ethConnectedSigner` 用于 ethereum 账户模型的 everPay 账户操作,而 `arJWK` 用于 arweave 账户模型的 everPay 账户操作。同一个 Everpay 实例,**只能使用一个账户模型**,但开发者可以创建 多个 Everpay 实例,来进行更复杂应用的开发。
57+
`ethConnectedSigner` 用于 ethereum 账户模型的 everPay 账户操作,而
58+
59+
* `isSmartAccount` 用于标识智能账户模型
60+
* `arJWK` 用于 arweave 账户模型的 everPay 账户操作。
61+
62+
同一个 Everpay 实例,**只能使用一个账户模型**,但开发者可以创建 多个 Everpay 实例,来进行更复杂应用的开发。
5863

5964
```js
6065
const ethEverpay = new Everpay({

docs/guide/SDK/everpay-js/configuration/intro.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ sidebar_position: 1
44

55
# 介绍
66

7-
everpay-js 创建 Everpay 实例的配置项,配置项包含:`debug`, `account`, `chainType`, `ethConnectedSigner`, `arJWK`
7+
everpay-js 创建 Everpay 实例的配置项,配置项包含:`debug`, `account`, `isSmartAccount`, `chainType`, `ethConnectedSigner`, `arJWK`
8+
89
* 配置项类型为 [`Config`](../types#config)
910

1011
```ts
@@ -14,5 +15,6 @@ export interface Config {
1415
chainType?: ChainType
1516
ethConnectedSigner?: Signer
1617
arJWK?: ArJWK
18+
isSmartAccount?: boolean
1719
}
1820
```
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
sidebar_position: 4
3+
---
4+
5+
# isSmartAccount
6+
7+
## 配置项功能
8+
9+
此配置项用于通过 智能账户(webauthn) 来操作 everPay `智能账户模型` 的 账户,对该账户进行:
10+
11+
- 充值:**智能账户不支持充值**
12+
- 转账:跳转 `https://beta.everpay.io/sign` 页面,传递签名参数,完成转账操作。
13+
- 提现:跳转 `https://beta.everpay.io/sign` 页面,传递签名参数,完成提现操作。
14+
15+
## 配置项类型
16+
17+
boolean
18+
19+
## 如何配置
20+
21+
```ts
22+
const account = await new Everpay().smartAccountAuth('https://app-dev.permaswap.network/permalogo.svg')
23+
const everpay = new Everpay({
24+
account,
25+
isSmartAccount: true
26+
})
27+
```
28+
29+
:::danger
30+
智能账户模型仅适用于浏览器环境
31+
:::

docs/guide/SDK/everpay-js/demo.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
sidebar_position: 10
3+
---
4+
5+
# Demo
6+
7+
## 介绍
8+
9+
为方便开发者快速集成 everpay-js,提供了相应的 demo 作为参考 [everpayjs-demo](https://github.com/everFinance/everpayjs-demo)

docs/guide/SDK/everpay-js/errors.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,17 @@ enum ERRORS {
4848
}
4949
```
5050

51+
## 智能账户模型
52+
53+
```ts
54+
'ACCOUNT_NOT_RECEIVE'
55+
'MESSAGEDATA_NOT_RECEIVE'
56+
'ACCOUNT_NOT_MATCH'
57+
'CANCEL_SIGN'
58+
'POPUP_CLOSED'
59+
'AUTHORIZE_TIMEOUT'
60+
```
61+
5162
:::danger
5263
因 arConnect 当前问题较多,当前在 arConnect 基础上,放置了一些错误
5364
:::

docs/guide/SDK/everpay-js/operation-api/bundle.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import TabItem from '@theme/TabItem';
1212
根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,在批量转账时进行以下步骤:
1313

1414
* 内部构建 [EverpayTxWithoutSig](../types#everpaytxwithoutsig)
15-
* 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)
15+
* 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)
1616
* 将信息发送给 everPay 后端服务器,进行签名验证。
1717
* 后端服务器验证通过,更新用户资产余额。并将该笔 everPay 交易记录存储在 arweave 区块链上。
1818

@@ -51,8 +51,6 @@ export interface BundleParams {
5151
</TabItem>
5252
</Tabs>
5353

54-
55-
5654
## 返回
5755

5856
```ts

docs/guide/SDK/everpay-js/operation-api/deposit.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,14 @@ import TabItem from '@theme/TabItem';
99

1010
## 功能
1111

12-
根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,调用对应(插件)钱包转账功能,对 everPay 账户进行充值。
12+
根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,调用对应(插件)钱包/webauthn转账功能,对 everPay 账户进行充值。
13+
14+
:::danger 私钥泄漏风险
15+
智能账户模型不支持充值
16+
:::
1317

1418
## 参数
19+
1520
```ts
1621
everpay.deposit(depositParams: DepositParams): EthereumTransaction | ArweaveTransaction
1722
```
@@ -33,12 +38,14 @@ export interface DepositParams {
3338
amount: string
3439
}
3540
```
41+
3642
</TabItem>
3743
</Tabs>
3844

3945
:::caution
40-
* 在进行 everPay 账户充值时,`chainType` 网络需要支持该 `Token tag`,否则无法充值成功。
41-
* 可通过 [`TokenList`](../basic-api/info.md#示例返回) 查看该[`Token crossChainInfoList`](../basic-api/info.md#token-字段描述) 字段,是否包含当前 `chainType` 网络。
46+
47+
* 在进行 everPay 账户充值时,`chainType` 网络需要支持该 `Token tag`,否则无法充值成功。
48+
* 可通过 [`TokenList`](../basic-api/info.md#示例返回) 查看该[`Token crossChainInfoList`](../basic-api/info.md#token-字段描述) 字段,是否包含当前 `chainType` 网络。
4249
:::
4350

4451
## 返回

0 commit comments

Comments
 (0)