快速集成
everpay-js 为开发者封装了 everPay 协议的大部分接口,开发者可以使用 everpay-js 快速将 everPay 协议集成到应用中。使用 everpay-js 可以在应用中快速完成 everPay 支付或结算。
使用要求
Node Version >= 14
推荐使用nvm
或 nvm-windows(windows) 来管理 Node 版本。- 推荐使用 everpay-js 内相同版本 ethers.js @5.4.0。ethers.js 只有在使用以太坊钱包连接时需要。
- 本章节将介绍如何使用 everpay-js 快速的进行安装、引入、创建、充值、转账、提现。
安装
使用 yarn 或 npm 进行安装使用,若未安装成功请检查网络再次进行尝试。
- yarn
- npm
yarn add everpay
npm install everpay
引入
- ES Modules
- CommonJS
import Everpay from 'everpay'
const everpay = new Everpay()
const Everpay = require('everpay')
const everpay = new Everpay()
创建 Everpay 实例
智能账户连接
极为简单与方便。
1. 使用包管理
(1)安装 everpay-js。
- yarn
- npm
yarn add everpay
npm install 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
})
以太坊钱包连接
1. 使用包管理器
(1)安装 everpay-js 和 ethers.js。
- yarn
- npm
yarn add everpay [email protected]
npm install 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-js 和 ethers 的 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>
- 确保
钱包已连接
并且连接到当前站点
。 - debug 环境配置。
- account 配置 & chainType 配置项。
ethConnectedSigner
的更多创建方式,可浏览 SDK - everpay-js - 配置项 -ethConnectedSigner
。- CDN 方式创建 Everpay 实例时,需要添加
default
:new window.Everpay.default({})
。 - 确保
ethers CDN链接
和everPay CDN链接
优先加载完成,否则ethers is not defined
或Everpay is not defined
。
Arweave 钱包连接
1. 使用包管理
(1)安装 everpay-js。
- yarn
- npm
yarn add everpay
npm install 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>
- 确保钱包已连接并授权,查看授权方式 、 查看授权类型。
- debug 环境配置。
- chainType 配置项。
arJWK
也支持私钥格式,可浏览 SDK - everpay-js - 配置项 -arJWK
进行配置。- CDN 方式创建 Everpay 实例时,需要添加
default
:new window.Everpay.default({})
。 - 确保
everPay CDN链接
优先加载完成,否则Everpay is not defined
。
- 根据上面的步骤,我们已经完成了 Everpay 实例的创建了,接下来一起完成充值、转账、提现。
充值
everPay 实例创建成功后,可通过 deposit
方法,将 Arweave
, Ethereum
等链上资产存入 everPay。
填写充值所需要的 token tag
和 amount
,调用下面的接口完成充值:
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 tag
和 amount
,to
,调用下面的接口完成转账:
everpay
.transfer({
tag: 'ethereum-usdt-0x923fcb255da521037385457fb549a51f78ef0af4',
amount: '5.21',
to: '0x26361130d5d6E798E9319114643AF8c868412859'
})
.then(console.log)
- 请注意:你正在操作转账的是 everPay 网络上的资产,请不要转账到交易所地址,或合约地址,否则您的资产将无法找回!
提现
everPay 实例创建成功后,可通过 withdraw
方法,对当前 账户(account)
已拥有的 资产(token)
进行 everPay 提现。将 everPay 中的 资产(token)
提到原生链地址中。
填写需要提现的 token tag
、 amount
、 chainType
、to
,调用下面的接口完成提现:
token tag
: 唯一标识,可通过info
接口进行查看。amount
: 数额。chainType
: chainType 原生链。to
:everpay
收款方地址,详情可见 账户模型。
everpay
.withdraw({
tag: 'ethereum-usdt-0x923fcb255da521037385457fb549a51f78ef0af4',
amount: '5.21',
chainType: 'ethereum',
to: '0x26361130d5d6E798E9319114643AF8c868412859'
})
.then(console.log)
- 将 everPay 上的资产提现到目标链,如 Ethereum 等。
- 请勿提现至合约地址,无法找回!
示例参考
更多示例可参考 everpay-js 单元测试用例