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)