跳到主要内容

快速集成

everpay-js 为开发者封装了 everPay 协议的大部分接口,开发者可以使用 everpay-js 快速将 everPay 协议集成到应用中。使用 everpay-js 可以在应用中快速完成 everPay 支付或结算。

使用要求

提示
  • 本章节将介绍如何使用 everpay-js 快速的进行安装、引入、创建、充值、转账、提现。

安装

使用 yarn 或 npm 进行安装使用,若未安装成功请检查网络再次进行尝试。

yarn add everpay

引入

import Everpay from 'everpay'
const everpay = new Everpay()

创建 Everpay 实例

智能账户连接

极为简单与方便。

1. 使用包管理

(1)安装 everpay-js

yarn add everpay

(2)引入 everpay-js 和 ethers 进行创建。

import Everpay from 'everpay'

const authResult = await new Everpay().smartAccountAuth('https://app-dev.permaswap.network/permalogo.svg')
const everpay = new Everpay({
account: authResult.account,
isSmartAccount: true
})

以太坊钱包连接

  • 创建时可选择性注入 ethConnectedSignerchainType 等配置项。
  • 开发者需安装并使用 ethers.js 进行创建。
  • 请下载 MetaMask 或 其他以太坊钱包。

1. 使用包管理器

(1)安装 everpay-jsethers.js

yarn add everpay [email protected]

(2)引入 everpay-js 和 ethers 进行创建。

import Everpay from 'everpay'
import { ethers } from 'ethers'

const provider = new ethers.providers.Web3Provider(window.ethereum)
const signer = provider.getSigner()
const everpay = new Everpay({
debug: true // 开启 everpay dev环境
account: window.ethereum.selectedAddress,
chainType: 'ethereum',
ethConnectedSigner: signer
})

2. 通过 CDN 方式连接以太坊钱包

(1)创建 index.html 文件并引入 everpay-jsethers 的 CDN 链接。

<script
src="https://cdn.jsdelivr.net/npm/[email protected]/umd/index.umd.min.js"
defer
type="text/javascript"
></script>
<script
defer
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/ethers.umd.min.js"
type="application/javascript"
></script>

(2)在 index.html 文件中创建 script 标签,并根据以下代码进行填充。

<script type="text/javascript" defer>
const ethRun = async () => {
// 若未连接可在此处做连接钱包和连接站点操作
const provider = new ethers.providers.Web3Provider(window.ethereum)
const signer = provider.getSigner()
const everpay = new window.Everpay.default({
debug: true // 开启 everpay dev环境
account: window.ethereum.selectedAddress,
chainType: 'ethereum',
ethConnectedSigner: signer
})
}
ethRun()
</script>
信息

Arweave 钱包连接

  • 创建需要注入 arJWK,当使用浏览器 ArConnect 钱包时,注入 arJWK: 'use_wallet' 即可。
  • 下载 ArConnect 钱包。

1. 使用包管理

(1)安装 everpay-js

yarn add everpay

(2)引入 everpay-js 进行创建。

import Everpay from 'everpay'

const arAddress = await window.arweaveWallet.getActiveAddress()
const everpay = new Everpay({
debug: true, // 开启 everpay dev环境
account: arAddress,
chainType: 'arweave',
arJWK: 'use_wallet'
})

2. 使用 CDN 方式连接 Arweave 钱包

(1)创建 index.html 文件并引入 everpay-js CDN 链接。

<script
src="https://cdn.jsdelivr.net/npm/[email protected]/umd/index.umd.min.js"
defer
type="text/javascript"
></script>

(2)在 index.html 文件中创建 script 标签,并根据以下代码进行填充。

<script>
const arRun = async () => {
// 若未连接可在此处做连接钱包和连接站点操作
const arAddress = await window.arweaveWallet.getActiveAddress()
const everpay = new window.Everpay.default({
debug: true // 开启 everpay dev环境
account: arAddress,
chainType: 'arweave',
arJWK: 'use_wallet'
})
}
arRun()
</script>
信息

成功啦
  • 根据上面的步骤,我们已经完成了 Everpay 实例的创建了,接下来一起完成充值、转账、提现。

充值

everPay 实例创建成功后,可通过 deposit 方法,将 Arweave, Ethereum 等链上资产存入 everPay。

填写充值所需要的 token tagamount,调用下面的接口完成充值:

  • tag : token 的唯一标识,可通过 info 接口进行查看。
  • amount : 数额。
everpay
.deposit({
tag: 'ethereum-usdt-0x923fcb255da521037385457fb549a51f78ef0af4',
amount: '5.21'
})
.then(console.log)
信息
  • 耐心等待区块验证完成,即可在 everPay 中拥有对应财产。
  • Ethereum 充值需要等待 20 个区块,Arweave 充值需要等待 20 个区块。
  • everPay 支持 AR 跨链,初始化注入 ethConnectedSigner 则充值调用的是 WAR(ERC20),初始化注入 arJWK 则充值调用的是 AR(native)。

转账

everPay 实例创建成功后,可通过 transfer 方法,对当前 账户(account) 已拥有的 资产(token) 进行 everPay 转账。

填写转账所需要的 token tagamountto,调用下面的接口完成转账:

  • tag : token 的唯一标识,可通过 info 接口进行查看。
  • amount : 数额。
  • to : everPay 的收款方地址,详情可见 账户模型
everpay
.transfer({
tag: 'ethereum-usdt-0x923fcb255da521037385457fb549a51f78ef0af4',
amount: '5.21',
to: '0x26361130d5d6E798E9319114643AF8c868412859'
})
.then(console.log)
危险
  • 请注意:你正在操作转账的是 everPay 网络上的资产,请不要转账到交易所地址,或合约地址,否则您的资产将无法找回!

提现

everPay 实例创建成功后,可通过 withdraw 方法,对当前 账户(account) 已拥有的 资产(token) 进行 everPay 提现。将 everPay 中的 资产(token) 提到原生链地址中。

填写需要提现的 token tagamountchainTypeto,调用下面的接口完成提现:

everpay
.withdraw({
tag: 'ethereum-usdt-0x923fcb255da521037385457fb549a51f78ef0af4',
amount: '5.21',
chainType: 'ethereum',
to: '0x26361130d5d6E798E9319114643AF8c868412859'
})
.then(console.log)
危险
  • 将 everPay 上的资产提现到目标链,如 Ethereum 等。
  • 请勿提现至合约地址,无法找回!

示例参考

更多示例可参考 everpay-js 单元测试用例