diff --git a/docs/guide/SDK/everpay-js.md b/docs/guide/SDK/everpay-js.md
index 79e63314..ebc14ce4 100644
--- a/docs/guide/SDK/everpay-js.md
+++ b/docs/guide/SDK/everpay-js.md
@@ -63,11 +63,49 @@ const everpay = new Everpay()
## 创建 Everpay 实例
+### 智能账户连接
+
+极为简单与方便。
+
+#### 1. 使用包管理
+
+(1)安装 [everpay-js](./everpay-js.md#安装)。
+
+
+
+
+```bash
+yarn add everpay
+```
+
+
+
+
+```bash
+npm install everpay
+```
+
+
+
+
+(2)引入 everpay-js 和 ethers 进行创建。
+
+```js
+import Everpay from 'everpay'
+
+const account = await new Everpay().smartAccountAuth('https://app-dev.permaswap.network/permalogo.svg')
+const everpay = new Everpay({
+ account,
+ isSmartAccount: true
+})
+```
+
### 以太坊钱包连接
- 创建时可选择性注入 `ethConnectedSigner`、`chainType` 等配置项。
- 开发者需安装并使用 [ethers.js](https://github.com/ethers-io/ethers.js) 进行创建。
- 请下载 [MetaMask](https://metamask.io/) 或 其他以太坊钱包。
+
#### 1. 使用包管理器
(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
(2)引入 everpay-js 和 ethers 进行创建。
+
```js
import Everpay from 'everpay'
import { ethers } from 'ethers'
@@ -103,7 +142,9 @@ const everpay = new Everpay({
ethConnectedSigner: signer
})
```
+
---
+
#### 2. 通过 CDN 方式连接以太坊钱包
(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,6 +182,7 @@ ethRun()
```
:::info
+
- 确保 `钱包已连接` 并且 `连接到当前站点`。
- [debug 环境配置](./everpay-js/configuration/debug.md)。
- [account 配置](../dive/account-model.md) & [chainType 配置项](./everpay-js/types.md#chaintype)。
@@ -148,7 +190,9 @@ ethRun()
- CDN 方式创建 Everpay 实例时,需要添加 `default` : `new window.Everpay.default({})`。
- 确保 `ethers CDN链接` 和 `everPay CDN链接` 优先加载完成,否则 `ethers is not defined` 或 `Everpay is not defined` 。
:::
+
---
+
### Arweave 钱包连接
- 创建需要注入 `arJWK`,当使用浏览器 [ArConnect](https://arconnect.io/) 钱包时,注入 `arJWK: 'use_wallet'` 即可。
@@ -176,6 +220,7 @@ npm install everpay
(2)引入 everpay-js 进行创建。
+
```ts
import Everpay from 'everpay'
@@ -217,26 +262,33 @@ const arRun = async () => {
arRun()
```
+
:::info
-* 确保钱包已连接并授权,[查看授权方式](./everpay-js/configuration/arJWK.md#浏览器--arconnect) 、 [查看授权类型](https://github.com/arconnectio/ArConnect#connectpermissions-appinfo-gateway)。
-* [debug 环境配置](./everpay-js/configuration/debug.md)。
-* [chainType 配置项](./everpay-js/types#chaintype)。
-* `arJWK` 也支持私钥格式,可浏览 [SDK - everpay-js - 配置项 - `arJWK`](./everpay-js/configuration/arJWK) 进行配置。
-* CDN 方式创建 Everpay 实例时,需要添加 `default` : `new window.Everpay.default({})`。
-* 确保 `everPay CDN链接` 优先加载完成,否则 `Everpay is not defined` 。
+
+- 确保钱包已连接并授权,[查看授权方式](./everpay-js/configuration/arJWK.md#浏览器--arconnect) 、 [查看授权类型](https://github.com/arconnectio/ArConnect#connectpermissions-appinfo-gateway)。
+- [debug 环境配置](./everpay-js/configuration/debug.md)。
+- [chainType 配置项](./everpay-js/types#chaintype)。
+- `arJWK` 也支持私钥格式,可浏览 [SDK - everpay-js - 配置项 - `arJWK`](./everpay-js/configuration/arJWK) 进行配置。
+- CDN 方式创建 Everpay 实例时,需要添加 `default` : `new window.Everpay.default({})`。
+- 确保 `everPay CDN链接` 优先加载完成,否则 `Everpay is not defined` 。
:::
+
---
:::tip 成功啦
+
- 根据上面的步骤,我们已经完成了 Everpay 实例的创建了,接下来一起完成充值、转账、提现。
:::
## 充值
+
everPay 实例创建成功后,可通过 `deposit` 方法,将 `Arweave`, `Ethereum` 等链上资产存入 everPay。
填写充值所需要的 `token tag` 和 `amount`,调用下面的接口完成充值:
-* `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
-* `amount` : 数额。
+
+- `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
+- `amount` : 数额。
+
```js
everpay
.deposit({
@@ -252,15 +304,19 @@ everpay
- Ethereum 充值需要等待 6 个区块,Arweave 充值需要等待 15 个区块。
- everPay 支持 AR 跨链,初始化注入 `ethConnectedSigner` 则充值调用的是 WAR(ERC20),初始化注入 `arJWK` 则充值调用的是 AR(native)。
:::
+
---
+
## 转账
+
everPay 实例创建成功后,可通过 `transfer` 方法,对当前 `账户(account)` 已拥有的 `资产(token)` 进行 everPay 转账。
填写转账所需要的 `token tag` 和 `amount`,`to`,调用下面的接口完成转账:
-* `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
-* `amount` : 数额。
-* `to` : `everPay` 的收款方地址,详情可见 [账户模型](../dive/account-model.md)。
+- `tag` : `token` 的唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
+- `amount` : 数额。
+- `to` : `everPay` 的收款方地址,详情可见 [账户模型](../dive/account-model.md)。
+
```js
everpay
.transfer({
@@ -272,18 +328,22 @@ everpay
```
:::danger
+
- 请注意:你正在操作转账的是 everPay 网络上的资产,请不要转账到交易所地址,或合约地址,否则您的资产将无法找回!
:::
+
---
+
## 提现
+
everPay 实例创建成功后,可通过 `withdraw` 方法,对当前 `账户(account)` 已拥有的 `资产(token)` 进行 everPay 提现。将 everPay 中的 `资产(token)` 提到原生链地址中。
填写需要提现的 `token tag` 、 `amount`、 `chainType` 、`to`,调用下面的接口完成提现:
-* `token tag` : 唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
-* `amount` : 数额。
-* `chainType` : [chainType 原生链](./everpay-js/types.md#chaintype)。
-* `to` : `everpay` 收款方地址,详情可见 [账户模型](../dive/account-model.md)。
+- `token tag` : 唯一标识,可通过 [`info`](./everpay-js/basic-api/info.md#示例返回) 接口进行查看。
+- `amount` : 数额。
+- `chainType` : [chainType 原生链](./everpay-js/types.md#chaintype)。
+- `to` : `everpay` 收款方地址,详情可见 [账户模型](../dive/account-model.md)。
```js
everpay
diff --git a/docs/guide/SDK/everpay-js/configuration/account.md b/docs/guide/SDK/everpay-js/configuration/account.md
index 2d29df5f..4fc1732a 100644
--- a/docs/guide/SDK/everpay-js/configuration/account.md
+++ b/docs/guide/SDK/everpay-js/configuration/account.md
@@ -5,15 +5,21 @@ sidebar_position: 3
# account
## 配置项功能
+
* account 为 everPay 账户地址,详情可见[`账户模型`](../../../dive/account-model.md)。
* 当调用 everpay-js [`基础查询API`](../basic-api/intro) 时,此 `account` 配置项作为默认的 account 参数,传递给 基础查询API。
-* 当调用 everpay-js [`操作类API`](../operation-api/intro) 、(everpay充值、转账、提现)时,此 `account` 配置项 **必须传递,并且满足如下钱包地址之一**。
+* 当调用 everpay-js [`操作类API`](../operation-api/intro) 、(everpay充值、转账、提现)时,此 `account` 配置项 **必须传递**。
+ * 智能账户模型:
+ * 必须通过 [`smartAccountAuth`](../tool-api/smartAccountAuth.md) 获取,确保与 登录的账户一致。
+ * 必须配置 [`isSmartAccount`](./isSmartAccount.md) 为 `true`
+ * 区块链账户模型,必须满足如下钱包地址之一:
* 与 ethConnectedSigner 对应的 ethereum 钱包地址一致。
* 与 arJWK 对应的 arweave 钱包地址一致。
## 基础查询API 示例
### 默认查询 account 对应的基础信息
+
```js
const everpay = new Everpay({
debug: false, // 默认开启正式环境
@@ -26,6 +32,7 @@ everpay.balance({
```
### 查询另一个 account 对应的基础信息
+
```js
const everpay = new Everpay({
debug: false,
@@ -46,4 +53,5 @@ everpay.balance({
```
## 操作类API 示例
-详见 [ethConnectedSigner](./ethConnectedSigner) 或 [arJWK](./arJWK) 配置项。
\ No newline at end of file
+
+详见 [ethConnectedSigner](./ethConnectedSigner) 或 [arJWK](./arJWK) 配置项。
diff --git a/docs/guide/SDK/everpay-js/configuration/chainType.md b/docs/guide/SDK/everpay-js/configuration/chainType.md
index f9f8d4ef..ce80b930 100644
--- a/docs/guide/SDK/everpay-js/configuration/chainType.md
+++ b/docs/guide/SDK/everpay-js/configuration/chainType.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 5
+sidebar_position: 6
---
# chainType
@@ -41,6 +41,7 @@ everpay.deposit({
console.log('ethTx', ethTx)
})
```
+
:::danger 私钥泄漏风险
此方式在代码中明文传递私钥,存在安全风险。
:::
diff --git a/docs/guide/SDK/everpay-js/configuration/ethConnectedSigner.md b/docs/guide/SDK/everpay-js/configuration/ethConnectedSigner.md
index 9bc1dc1f..11484700 100644
--- a/docs/guide/SDK/everpay-js/configuration/ethConnectedSigner.md
+++ b/docs/guide/SDK/everpay-js/configuration/ethConnectedSigner.md
@@ -1,12 +1,12 @@
---
-sidebar_position: 5
+sidebar_position: 6
---
# ethConnectedSigner
## 配置项功能
-此配置项用于通过 ethereum/moonbeam/moonbase 钱包,来操作 everPay `ethereum 账户模型` 的 账户,对该账户进行:
+此配置项用于通过 ethereum/moonbeam/moonbase 等 evm 钱包,来操作 everPay `ethereum 账户模型` 的 账户,对该账户进行:
* 充值:使用 `ethConnectedSigner` 进行 ethereum 转账 至 everPay 多签合约地址。
* 转账:使用 `ethConnectedSigner` 进行 ethereum `personalSign` 签名,来确保该 everPay 账户的操作权限。
@@ -52,9 +52,14 @@ const everpay = new Everpay({
此方式在代码中明文传递私钥,存在安全风险
:::
-## 与 arJWK 配置项的冲突
+## 与 isSmartAccount、arJWK 配置项的冲突
-`ethConnectedSigner` 用于 ethereum 账户模型的 everPay 账户操作,而 `arJWK` 用于 arweave 账户模型的 everPay 账户操作。同一个 Everpay 实例,**只能使用一个账户模型**,但开发者可以创建 多个 Everpay 实例,来进行更复杂应用的开发。
+`ethConnectedSigner` 用于 ethereum 账户模型的 everPay 账户操作,而
+
+* `isSmartAccount` 用于标识智能账户模型
+* `arJWK` 用于 arweave 账户模型的 everPay 账户操作。
+
+同一个 Everpay 实例,**只能使用一个账户模型**,但开发者可以创建 多个 Everpay 实例,来进行更复杂应用的开发。
```js
const ethEverpay = new Everpay({
diff --git a/docs/guide/SDK/everpay-js/configuration/intro.md b/docs/guide/SDK/everpay-js/configuration/intro.md
index a660b29a..75f1037e 100644
--- a/docs/guide/SDK/everpay-js/configuration/intro.md
+++ b/docs/guide/SDK/everpay-js/configuration/intro.md
@@ -4,7 +4,8 @@ sidebar_position: 1
# 介绍
-everpay-js 创建 Everpay 实例的配置项,配置项包含:`debug`, `account`, `chainType`, `ethConnectedSigner`, `arJWK`。
+everpay-js 创建 Everpay 实例的配置项,配置项包含:`debug`, `account`, `isSmartAccount`, `chainType`, `ethConnectedSigner`, `arJWK`。
+
* 配置项类型为 [`Config`](../types#config)。
```ts
@@ -14,5 +15,6 @@ export interface Config {
chainType?: ChainType
ethConnectedSigner?: Signer
arJWK?: ArJWK
+ isSmartAccount?: boolean
}
```
diff --git a/docs/guide/SDK/everpay-js/configuration/isSmartAccount.md b/docs/guide/SDK/everpay-js/configuration/isSmartAccount.md
new file mode 100644
index 00000000..e07b1a84
--- /dev/null
+++ b/docs/guide/SDK/everpay-js/configuration/isSmartAccount.md
@@ -0,0 +1,31 @@
+---
+sidebar_position: 4
+---
+
+# isSmartAccount
+
+## 配置项功能
+
+此配置项用于通过 智能账户(webauthn) 来操作 everPay `智能账户模型` 的 账户,对该账户进行:
+
+- 充值:**智能账户不支持充值**。
+- 转账:跳转 `https://beta.everpay.io/sign` 页面,传递签名参数,完成转账操作。
+- 提现:跳转 `https://beta.everpay.io/sign` 页面,传递签名参数,完成提现操作。
+
+## 配置项类型
+
+boolean
+
+## 如何配置
+
+```ts
+const account = await new Everpay().smartAccountAuth('https://app-dev.permaswap.network/permalogo.svg')
+const everpay = new Everpay({
+ account,
+ isSmartAccount: true
+})
+```
+
+:::danger
+智能账户模型仅适用于浏览器环境
+:::
diff --git a/docs/guide/SDK/everpay-js/demo.md b/docs/guide/SDK/everpay-js/demo.md
new file mode 100644
index 00000000..ed53cc7f
--- /dev/null
+++ b/docs/guide/SDK/everpay-js/demo.md
@@ -0,0 +1,9 @@
+---
+sidebar_position: 10
+---
+
+# Demo
+
+## 介绍
+
+为方便开发者快速集成 everpay-js,提供了相应的 demo 作为参考 [everpayjs-demo](https://github.com/everFinance/everpayjs-demo)
diff --git a/docs/guide/SDK/everpay-js/errors.md b/docs/guide/SDK/everpay-js/errors.md
index 1b1b355b..194c2d55 100644
--- a/docs/guide/SDK/everpay-js/errors.md
+++ b/docs/guide/SDK/everpay-js/errors.md
@@ -48,6 +48,17 @@ enum ERRORS {
}
```
+## 智能账户模型
+
+```ts
+'ACCOUNT_NOT_RECEIVE'
+'MESSAGEDATA_NOT_RECEIVE'
+'ACCOUNT_NOT_MATCH'
+'CANCEL_SIGN'
+'POPUP_CLOSED'
+'AUTHORIZE_TIMEOUT'
+```
+
:::danger
因 arConnect 当前问题较多,当前在 arConnect 基础上,放置了一些错误
:::
diff --git a/docs/guide/SDK/everpay-js/operation-api/bundle.md b/docs/guide/SDK/everpay-js/operation-api/bundle.md
index c4d074a9..34b90eb9 100644
--- a/docs/guide/SDK/everpay-js/operation-api/bundle.md
+++ b/docs/guide/SDK/everpay-js/operation-api/bundle.md
@@ -12,7 +12,7 @@ import TabItem from '@theme/TabItem';
根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,在批量转账时进行以下步骤:
* 内部构建 [EverpayTxWithoutSig](../types#everpaytxwithoutsig)。
-* 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
+* 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
* 将信息发送给 everPay 后端服务器,进行签名验证。
* 后端服务器验证通过,更新用户资产余额。并将该笔 everPay 交易记录存储在 arweave 区块链上。
@@ -51,8 +51,6 @@ export interface BundleParams {
-
-
## 返回
```ts
diff --git a/docs/guide/SDK/everpay-js/operation-api/deposit.md b/docs/guide/SDK/everpay-js/operation-api/deposit.md
index be0da7c2..1576d0ae 100644
--- a/docs/guide/SDK/everpay-js/operation-api/deposit.md
+++ b/docs/guide/SDK/everpay-js/operation-api/deposit.md
@@ -9,9 +9,14 @@ import TabItem from '@theme/TabItem';
## 功能
-根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,调用对应(插件)钱包转账功能,对 everPay 账户进行充值。
+根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,调用对应(插件)钱包/webauthn转账功能,对 everPay 账户进行充值。
+
+:::danger 私钥泄漏风险
+智能账户模型不支持充值
+:::
## 参数
+
```ts
everpay.deposit(depositParams: DepositParams): EthereumTransaction | ArweaveTransaction
```
@@ -33,12 +38,14 @@ export interface DepositParams {
amount: string
}
```
+
:::caution
- * 在进行 everPay 账户充值时,`chainType` 网络需要支持该 `Token tag`,否则无法充值成功。
- * 可通过 [`TokenList`](../basic-api/info.md#示例返回) 查看该[`Token crossChainInfoList`](../basic-api/info.md#token-字段描述) 字段,是否包含当前 `chainType` 网络。
+
+* 在进行 everPay 账户充值时,`chainType` 网络需要支持该 `Token tag`,否则无法充值成功。
+* 可通过 [`TokenList`](../basic-api/info.md#示例返回) 查看该[`Token crossChainInfoList`](../basic-api/info.md#token-字段描述) 字段,是否包含当前 `chainType` 网络。
:::
## 返回
diff --git a/docs/guide/SDK/everpay-js/operation-api/intro.md b/docs/guide/SDK/everpay-js/operation-api/intro.md
index 472e01df..bf5ddc6a 100644
--- a/docs/guide/SDK/everpay-js/operation-api/intro.md
+++ b/docs/guide/SDK/everpay-js/operation-api/intro.md
@@ -4,18 +4,18 @@ sidebar_position: 1
# 介绍
-根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,在:
+根据 Everpay 实例创建时,传递的 `account`, `isSmartAccount`, `ethConnectedSigner`, `arJWK` 参数,在:
-* 充值时,调用对应(插件)钱包转账功能,对 everPay 账户进行充值。
+* 充值时,调用对应(插件)钱包/webauthn转账功能,对 everPay 账户进行充值。(**智能账户不支持充值**)
* 转账时
* 内部构建 [EverpayTxWithoutSig](../types#everpaytxwithoutsig)。
- * 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
+ * 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
* 将信息发送给 everPay 后端服务器,进行签名验证。
* 后端服务器验证通过,更新用户资产余额。并将该笔 everPay 交易记录存储在 arweave 区块链上。
* 提现时
* 在普通提现时
* 内部构建**普通提现** [Schema](../../../dive/withdraw#schema-说明)。
- * 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
+ * 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
* 将信息发送给 everPay 后端服务器,进行签名验证。
* 后端服务器验证通过,将该笔 everPay 交易记录存储在 arweave 区块链上。
* 等待 arweave 区块链完成该笔 everPay 交易记录存储,确保账户的正确性后。
@@ -24,14 +24,19 @@ sidebar_position: 1
* 批量转账时
* 内部转账交易时
* 内部构建 [BundleData](../types/#bundledata)。
- * 调用对应(插件)钱包签名功能,生成 `sig`,组装 [BundleDataWithSigs](../types#bundledatawithsigs)。
+ * 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [BundleDataWithSigs](../types#bundledatawithsigs)。
* 外部转账交易时
* 内部构建 [EverpayTxWithoutSig](../types#everpaytxwithoutsig)。
- * 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
+ * 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
* 将信息发送给 everPay 后端服务器,进行签名验证。
* 后端服务器验证通过,更新用户资产余额。并将该笔 everPay 交易记录存储在 arweave 区块链上。
* 更多信息请阅读 [DOCS - 系统概览 - 批量转账](../../../dive/bundle)。
:::caution
-* 如需要调用 操作类API(everpay充值、转账、提现),在 Everpay 实例创建时必须传递 `ethConnectedSigner` 或 `arJWK` 之一。并且 `account` 配置项 **必须传递**,且与 传递的`ethConnectedSigner` 或 `arJWK` 对应的**钱包地址一致**。
-:::
\ No newline at end of file
+
+* 智能账户模型
+ * 必须为浏览器环境
+ * 不支持充值
+* 区块链账户模型
+ * 如需要调用 操作类API(everpay充值、转账、提现),在 Everpay 实例创建时必须传递 `ethConnectedSigner` 或 `arJWK` 之一。并且 `account` 配置项 **必须传递**,且与 传递的`ethConnectedSigner` 或 `arJWK` 对应的**钱包地址一致**。
+:::
diff --git a/docs/guide/SDK/everpay-js/operation-api/transfer.md b/docs/guide/SDK/everpay-js/operation-api/transfer.md
index 41b08a5d..fedf6927 100644
--- a/docs/guide/SDK/everpay-js/operation-api/transfer.md
+++ b/docs/guide/SDK/everpay-js/operation-api/transfer.md
@@ -12,7 +12,7 @@ import TabItem from '@theme/TabItem';
根据 Everpay 实例创建时,传递的 `account`, `ethConnectedSigner`, `arJWK` 参数,在转账时进行以下步骤:
* 内部构建 [EverpayTxWithoutSig](../types#everpaytxwithoutsig)。
-* 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
+* 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
* 将信息发送给 everPay 后端服务器,进行签名验证。
* 后端服务器验证通过,更新用户资产余额。并将该笔 everPay 交易记录存储在 arweave 区块链上。
@@ -26,6 +26,7 @@ import TabItem from '@theme/TabItem';
:::
## 参数
+
```ts
everpay.transfer(transferParams: TransferParams):SendEverpayTxResult
```
@@ -40,7 +41,6 @@ everpay.transfer(transferParams: TransferParams):SendEverpayTxResult
|to|YES|`everPay` 的收款方 ID。|
|data|NO|附加信息,开发者可自定义JSON 数据,经过 `JSON.stringify()` 处理后传递。通过 `data` 可自定义实现一些复杂功能,例如 [批量转账](../../../dive/bundle.md)。|
-
@@ -56,8 +56,8 @@ export interface TransferParams {
-
## 返回
+
```ts
// Note: This type does not have an export
interface PostEverpayTxResult {
diff --git a/docs/guide/SDK/everpay-js/operation-api/withdraw.md b/docs/guide/SDK/everpay-js/operation-api/withdraw.md
index b5f24c1e..a10f43fc 100644
--- a/docs/guide/SDK/everpay-js/operation-api/withdraw.md
+++ b/docs/guide/SDK/everpay-js/operation-api/withdraw.md
@@ -13,7 +13,7 @@ import TabItem from '@theme/TabItem';
* 在普通提现时
* 内部构建**普通提现** [Schema](../../../dive/withdraw#schema-说明)。
- * 调用对应(插件)钱包签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
+ * 调用对应(插件)钱包/webauthn签名功能,生成 `sig`,组装 [EverpayTx](../types#everpaytx)。
* 将信息发送给 everPay 后端服务器,进行签名验证。
* 后端服务器验证通过,将该笔 everPay 交易记录存储在 arweave 区块链上。
* 等待 arweave 区块链完成该笔 everPay 交易记录存储,确保账户的正确性后。
@@ -29,6 +29,7 @@ import TabItem from '@theme/TabItem';
:::
## 参数
+
```ts
everpay.withdraw(withdrawParams: WithdrawParams):SendEverpayTxResult
```
@@ -65,6 +66,7 @@ export interface WithdrawParams {
## 返回
+
```ts
// Note: This type does not have an export
interface PostEverpayTxResult {
@@ -160,4 +162,4 @@ everpay.withdraw({
everHash: '0x1a31b394f471c74f588810201a29bd66fb53a9b6f9518512210817a72655238b'
}
*/
-```
\ No newline at end of file
+```
diff --git a/docs/guide/SDK/everpay-js/tool-api/getBundleData.md b/docs/guide/SDK/everpay-js/tool-api/getBundleData.md
index 3cc8f1b4..a2f4ffd1 100644
--- a/docs/guide/SDK/everpay-js/tool-api/getBundleData.md
+++ b/docs/guide/SDK/everpay-js/tool-api/getBundleData.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 3
+sidebar_position: 4
---
# getBundleData
diff --git a/docs/guide/SDK/everpay-js/tool-api/getEverpayTxMessage.md b/docs/guide/SDK/everpay-js/tool-api/getEverpayTxMessage.md
index a53ecd64..5a9df903 100644
--- a/docs/guide/SDK/everpay-js/tool-api/getEverpayTxMessage.md
+++ b/docs/guide/SDK/everpay-js/tool-api/getEverpayTxMessage.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 2
+sidebar_position: 3
---
# getEverpayTxMessage
@@ -8,9 +8,11 @@ import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
## 功能
+
将 everPay 交易结构 [EverpayTxWithoutSig](../types#everpaytxwithoutsig) 转化成 `messageData` 用于签名。
## 参数
+
```ts
everpay.getEverpayTxMessage(everpayTxWithoutSig: EverpayTxWithoutSig):string
```
@@ -42,11 +44,10 @@ export interface EverpayTxWithoutSig {
version: string
}
```
+
-
-
## 返回
`messageData` string
@@ -85,4 +86,4 @@ chainType:ethereum
chainID:42
data:{"hello":"world","this":"is everpay"}
version:v1`
-```
\ No newline at end of file
+```
diff --git a/docs/guide/SDK/everpay-js/tool-api/getEverpayTxWithoutSig.md b/docs/guide/SDK/everpay-js/tool-api/getEverpayTxWithoutSig.md
index b5b00a2b..16524115 100644
--- a/docs/guide/SDK/everpay-js/tool-api/getEverpayTxWithoutSig.md
+++ b/docs/guide/SDK/everpay-js/tool-api/getEverpayTxWithoutSig.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 1
+sidebar_position: 2
---
# getEverpayTxWithoutSig
@@ -16,6 +16,7 @@ import TabItem from '@theme/TabItem';
```ts
everpay.getEverpayTxWithoutSig(type: EverpayTxWithoutSigType, params: EverpayTxWithoutSigParams):EverpayTxWithoutSig
```
+
@@ -58,14 +59,14 @@ export interface BundleParams {
to: string
}
```
+
-
-
## 返回
-### 返回类型
+### 返回类型
+
```ts
export interface EverpayTxWithoutSig {
tokenSymbol: string
diff --git a/docs/guide/SDK/everpay-js/tool-api/smartAccountAuth.md b/docs/guide/SDK/everpay-js/tool-api/smartAccountAuth.md
new file mode 100644
index 00000000..05502f03
--- /dev/null
+++ b/docs/guide/SDK/everpay-js/tool-api/smartAccountAuth.md
@@ -0,0 +1,33 @@
+---
+sidebar_position: 1
+---
+
+# smartAccountAuth
+
+## 功能
+
+智能账户,应用方 EverID 登录方法,传递应用方 `logo` 跳转 `https://beta.everpay.io/auth` 页面,当用户 注册/登录 everPay 后,返回用户 EverID (邮箱地址)。
+
+:::danger
+此方法仅适用于浏览器环境
+:::
+
+## 参数
+
+```ts
+everpay.smartAccountAuth(logo: string):Promise
+```
+
+## 返回
+
+string
+
+## 示例
+
+```ts
+const account = await new Everpay().smartAccountAuth('https://app-dev.permaswap.network/permalogo.svg')
+console.log('account', account)
+
+/* 示例返回
+'test@gmail.com'
+```
diff --git a/docs/guide/SDK/everpay-js/types.md b/docs/guide/SDK/everpay-js/types.md
index 2c302d55..637d0477 100644
--- a/docs/guide/SDK/everpay-js/types.md
+++ b/docs/guide/SDK/everpay-js/types.md
@@ -56,6 +56,7 @@ export interface Config {
chainType?: ChainType
ethConnectedSigner?: Signer
arJWK?: ArJWK
+ isSmartAccount?: boolean
}
```
diff --git a/docs/guide/SDK/intro.md b/docs/guide/SDK/intro.md
index 948d117b..eade54a9 100644
--- a/docs/guide/SDK/intro.md
+++ b/docs/guide/SDK/intro.md
@@ -2,6 +2,12 @@
sidebar_position: 1
---
# 介绍
+
everpay-js 作为 everPay 客户端开发工具,方便开发者使用 nodeJS、web 端来进行 everPay 集成,来进行 everPay 的支付等。
-当前 everPay 账户支持 ethereum, arweave 账户模型,开发者可使用 ethereum, arweave 钱包来访问和操作 everPay 账户。
\ No newline at end of file
+当前 everPay 账户支持智能账户模型、ethereum, arweave 账户模型,开发者可使用
+
+* 邮箱地址
+* 或者 ethereum, arweave 钱包
+
+来访问和操作 everPay 账户。
diff --git a/docs/guide/dive/account-model.md b/docs/guide/dive/account-model.md
index 943fd044..0bd94785 100644
--- a/docs/guide/dive/account-model.md
+++ b/docs/guide/dive/account-model.md
@@ -4,18 +4,21 @@ sidebar_position: 2
# 账户模型
-## 区块链账户
+everPay 协议的账户体系多元且灵活,除支持区块链账户外,也支持智能账户,即互联网账户体系。
+
+## 智能账户
-everPay 协议的账户体系多元且灵活,除支持区块链账户外,未来还会支持智能账户,即互联网账户体系。
+everPay 已支持智能账户模型,用户可以使用邮箱作为 EverID,来进行转账、提现,并和区块链账户完全相通。
+
+## 区块链账户
-目前支持 Ethereum 和 Arweave 地址。用户使用 Ethereum 或 Arweave 钱包连接后,与连接时使用的钱包 “区块链地址” 一致。即所有的 Ethereum 地址和 Arweave 地址,都是 everPay 上的 `有效` 账户。
+区块链账户目前支持 Ethereum 和 Arweave 地址。用户使用 Ethereum 或 Arweave 钱包连接后,与连接时使用的钱包 “区块链地址” 一致。即所有的 Ethereum 地址和 Arweave 地址,都是 everPay 上的 `有效` 账户。
例如:
+
* 以太坊钱包 0x26361130d5d6E798E9319114643AF8c868412859,通过 MetaMask 连接 everPay 后,在 everPay 上对应的账户 ID 即为 0x26361130d5d6E798E9319114643AF8c868412859。
* Arweave 钱包 5NPqYBdIsIpJzPeYixuz7BEH_W7BEk_mb8HxBD3OHXo 通过 ArConnect 连接 everPay 后,在 everPay 上对应的账户 ID 即为 5NPqYBdIsIpJzPeYixuz7BEH_W7BEk_mb8HxBD3OHXo。
-未来,everPay 协议的账户体系将支持智能账户模型,尽请期待。
-
:::info 注意
everPay 账户与区块链地址的区别:
@@ -25,6 +28,7 @@ everPay 账户与区块链地址的区别:
:::
## 支持的钱包
+
* 以太坊钱包
* [imToken](https://token.im/)
* [MetaMask](https://metamask.io/)
@@ -33,4 +37,4 @@ everPay 账户与区块链地址的区别:
* [WalletConnect](https://walletconnect.org/)
* etc.
* Arweave 钱包
- * [ArConnect](https://arconnect.io/)
\ No newline at end of file
+ * [ArConnect](https://arconnect.io/)
diff --git a/docs/guide/docs-catalogue.md b/docs/guide/docs-catalogue.md
index 64ca2d20..27a96a3d 100644
--- a/docs/guide/docs-catalogue.md
+++ b/docs/guide/docs-catalogue.md
@@ -3,55 +3,69 @@ sidebar_position: 3
---
# 目录
+
## 系统概览
- * [账户模型](./dive/account-model.md)
- * [交易](./dive/transaction.md)
- * [充值](./dive/deposit.md)
- * [转账](./dive/transfer.md)
- * [提现](./dive/withdraw.md)
- * [批量转账](./dive/bundle.md)
-
-## [Server API](./server-api/intro.md)
+
+* [账户模型](./dive/account-model.md)
+* [交易](./dive/transaction.md)
+* [充值](./dive/deposit.md)
+* [转账](./dive/transfer.md)
+* [提现](./dive/withdraw.md)
+* [批量转账](./dive/bundle.md)
+
+## [Server API](./server-api/intro.md)
+
* everPay 后端服务, 可通过 everPay Server 获取 everPay 基本信息等功能。
#### 基本查询类
- * GET [/info](./server-api/basic-api/info.md)
- * GET [/balances/{account}](./server-api/basic-api/balances.md)
- * GET [/balance/{tag}/{account}](./server-api/basic-api/balance.md)
- * GET [/fees](./server-api/basic-api/fees.md)
- * GET [/fee/{tag}](./server-api/basic-api/fee.md)
- * GET [/txs?page&tokenTag&action](./server-api/basic-api/txs.md)
- * GET [/txsByAccount/{account}?page&tokenTag&action](./server-api/basic-api/txsByAccount.md)
- * GET [/txsByHash/{everHash}](./server-api/basic-api/txByHash.md)
- * GET [/mintedTxByChainTxHash/{chainTxHash}](./server-api/basic-api/mintedTxByChainTxHash.md)
+
+* GET [/info](./server-api/basic-api/info.md)
+* GET [/balances/{account}](./server-api/basic-api/balances.md)
+* GET [/balance/{tag}/{account}](./server-api/basic-api/balance.md)
+* GET [/fees](./server-api/basic-api/fees.md)
+* GET [/fee/{tag}](./server-api/basic-api/fee.md)
+* GET [/txs?page&tokenTag&action](./server-api/basic-api/txs.md)
+* GET [/txsByAccount/{account}?page&tokenTag&action](./server-api/basic-api/txsByAccount.md)
+* GET [/txsByHash/{everHash}](./server-api/basic-api/txByHash.md)
+* GET [/mintedTxByChainTxHash/{chainTxHash}](./server-api/basic-api/mintedTxByChainTxHash.md)
+
#### 操作类
- * POST [/tx](./server-api//operation-api/tx.md)
+
+* POST [/tx](./server-api//operation-api/tx.md)
## [SDK](./SDK/everpay-js.md)
+
* 方便开发者使用 nodeJS、web 端来进行 everPay 集成,来进行 everPay 的支付等。
+
#### 基本查询类
- * [/info](./SDK/everpay-js/basic-api/info.md)
- * [/balances](./SDK/everpay-js/basic-api/balances.md)
- * [/balance](./SDK/everpay-js/basic-api/balance.md)
- * [/fees](./SDK/everpay-js/basic-api/fees.md)
- * [/fee](./SDK/everpay-js/basic-api/fee.md)
- * [/txs](./SDK/everpay-js/basic-api/txs.md)
- * [/txsByAccount](./SDK/everpay-js/basic-api/txsByAccount.md)
- * [/txsByHash](./SDK/everpay-js/basic-api/txByHash.md)
- * [/mintedTxByChainTxHash](./SDK/everpay-js/basic-api/mintedTxByChainTxHash.md)
+
+* [/info](./SDK/everpay-js/basic-api/info.md)
+* [/balances](./SDK/everpay-js/basic-api/balances.md)
+* [/balance](./SDK/everpay-js/basic-api/balance.md)
+* [/fees](./SDK/everpay-js/basic-api/fees.md)
+* [/fee](./SDK/everpay-js/basic-api/fee.md)
+* [/txs](./SDK/everpay-js/basic-api/txs.md)
+* [/txsByAccount](./SDK/everpay-js/basic-api/txsByAccount.md)
+* [/txsByHash](./SDK/everpay-js/basic-api/txByHash.md)
+* [/mintedTxByChainTxHash](./SDK/everpay-js/basic-api/mintedTxByChainTxHash.md)
+
#### 工具类
- * [/getEverpayTxWithoutSig](./SDK/everpay-js/tool-api/getEverpayTxWithoutSig.md)
- * [/getEverpayTxMessage](./SDK//everpay-js/tool-api/getEverpayTxMessage.md)
- * [/getBundleData](./SDK/everpay-js/tool-api/getBundleData.md)
+
+* [/smartAccountAuth](./SDK//everpay-js/tool-api/smartAccountAuth.md)
+* [/getEverpayTxWithoutSig](./SDK/everpay-js/tool-api/getEverpayTxWithoutSig.md)
+* [/getEverpayTxMessage](./SDK//everpay-js/tool-api/getEverpayTxMessage.md)
+* [/getBundleData](./SDK/everpay-js/tool-api/getBundleData.md)
+
#### 操作类
- * [/deposit](./SDK/everpay-js/operation-api/deposit.md)
- * [/transfer](./SDK/everpay-js/operation-api/transfer.md)
- * [/withdraw](./SDK/everpay-js/operation-api/withdraw.md)
- * [signBundleData](./SDK/everpay-js/operation-api/signBundleData.md)
- * [bundle](./SDK/everpay-js/operation-api/bundle.md)
- * [sendEverpayTx](./SDK/everpay-js//operation-api/sendEverpayTx.md)
+
+* [/deposit](./SDK/everpay-js/operation-api/deposit.md)
+* [/transfer](./SDK/everpay-js/operation-api/transfer.md)
+* [/withdraw](./SDK/everpay-js/operation-api/withdraw.md)
+* [signBundleData](./SDK/everpay-js/operation-api/signBundleData.md)
+* [bundle](./SDK/everpay-js/operation-api/bundle.md)
+* [sendEverpayTx](./SDK/everpay-js//operation-api/sendEverpayTx.md)
## 延伸
- * [基于存储的计算范式](./refrence/storage-based-computation-paradigm.md)
- * [共识变迁](./refrence/consensus.md)
\ No newline at end of file
+* [基于存储的计算范式](./refrence/storage-based-computation-paradigm.md)
+* [共识变迁](./refrence/consensus.md)