类型
以下类型,都可通过 typescript 从 everpay-js 中 import
ChainType
export enum ChainType {
ethereum = 'ethereum',
moon = 'moon',
arweave = 'arweave',
conflux = 'conflux',
bsc = 'bsc',
platon = 'platon'
}
ArJWK
export type ArJWK = JWKInterface | 'use_wallet'
其中 JWKInterface
来源于 arweave-js JWKInterface
EthereumTransaction
import { TransactionResponse as EthereumTransaction } from '@ethersproject/abstract-provider'
export { EthereumTransaction }
TransactionResponse
来源于 ethers.js TransactionResponse
ArweaveTransaction
import { TransactionInterface as ArweaveTransaction } from 'arweave/node/lib/transaction'
export { ArweaveTransaction }
TransactionInterface
来源于 arweave-js TransactionInterface
Config
Everpay
构造函数配置项
export interface Config {
debug?: boolean
account?: string
chainType?: ChainType
ethConnectedSigner?: Signer
arJWK?: ArJWK
isSmartAccount?: boolean
}
Signer
来源于 ethers.js Signer
CrossChainInfo
export interface CrossChainInfo {
targetChainId: string
targetChainType: ChainType
targetDecimals: number
targetTokenId: string
}
Token
export interface Token {
tag: string
id: string
symbol: string
decimals: number
totalSupply: string
chainID: string
chainType: ChainType | string
crossChainInfoList: {
[propname: string]: CrossChainInfo
}
}
FeeItem
export interface FeeItem {
tokenTag: string
burnFeeMap: {
[propname: string]: string
}
transferFee: string
atomicBundleFee: string
updatedAt: string
}
EverpayInfo
export interface EverpayInfo {
ethLocker: string
arLocker: string
ethChainID: string
feeRecipient: string
owner: string
everRootHash: string
rootHash: string
tokenList: Token[]
}
ExpressInfo
interface ExpressTokenItem {
tokenTag: string
withdrawFee: string
walletBalance: string
}
export interface ExpressInfo {
address: string
withdrawTimeCost: number
tokens: ExpressTokenItem[]
}
EverpayAction
export enum EverpayAction {
transfer = 'transfer',
withdraw = 'burn',
bundle = 'bundle'
}
InternalTransferItem
export interface InternalTransferItem {
tag: string
from: string
to: string
amount: string
}
BundleItem
export interface BundleItem {
amount: string
chainID: string
from: string
to: string
tag: string
}
BundleData
export interface BundleData {
items: BundleItem[]
expiration: number
salt: string
version: string
}
BundleDataWithSigs
export interface BundleDataWithSigs extends BundleData {
sigs: {
[account: string]: string
}
}
EverpayTxWithoutSig
export interface EverpayTxWithoutSig {
tokenSymbol: string
action: EverpayAction
from: string
to: string
amount: string
fee: string
feeRecipient: string
nonce: string
tokenID: string
chainType: ChainType | string
chainID: string
data: string
version: string
}
EverpayTx
export interface EverpayTx extends EverpayTxWithoutSig {
sig: string
}
EverpayActionWithDeposit
export enum EverpayActionWithDeposit {
transfer = 'transfer',
withdraw = 'burn',
deposit = 'mint',
bundle = 'bundle'
}
EverpayTransactionStatus
enum EverpayTransactionStatus {
// deposit(mint) transaction, after the corresponding number of blocks confirm, status will be confirmed
// withdraw(burn) transaction, the backend receives the everPay Tx and status will be confirmed first
confirmed = 'confirmed',
// transaction status will be packaged only after everPay Tx storaged on arweave blockchain
packaged = 'packaged'
}
EverpayTransaction
export interface EverpayTransaction {
id: string // an arweave tx, which stored the everPay Tx information on the arweave blockchain
nonce: number
action: EverpayActionWithDeposit
from: string
to: string
amount: string
data: string
fee: string
feeRecipient: string
sig: string
everHash: string
status: EverpayTransactionStatus
timestamp: number
targetChainTxHash?: string
express: {
chainTxHash: string
withdrawFee: string
refundEverHash: string
err: string
}
}
TxsResult
export interface TxsResult {
accid?: string
currentPage: number
totalPages: number
txs: EverpayTransaction[]
}
BalanceParams
export interface BalanceParams {
tag: string
account?: string
}
BalancesParams
export interface BalancesParams {
account?: string
}
BalanceItem
export interface BalanceItem {
chainType: string
tag: string
symbol: string
balance: string
address: string
}
DepositParams
export interface DepositParams {
tag: string
amount: string
}
TransferParams
export interface TransferParams {
tag: string
amount: string
data?: Record<string, unknown>
to: string
}
WithdrawParams
export interface WithdrawParams {
chainType: ChainType
tag: string
amount: string
fee?: string
quickMode?: boolean
data?: Record<string, unknown>
to?: string
}
BundleParams
export interface BundleParams {
tag: string
amount: string
data: {
bundle: BundleDataWithSigs
}
to: string
}
TxsParams
export interface TxsParams {
page?: number
tag?: string
action?: EverpayActionWithDeposit
withoutAction?: EverpayActionWithDeposit
}
TxsByAccountParams
export interface TxsByAccountParams {
page?: number
account?: string
tag?: string
action?: EverpayActionWithDeposit
withoutAction?: EverpayActionWithDeposit
}
SendEverpayTxResult
// Note: This type does not have an export
interface PostEverpayTxResult {
status: string
}
export interface SendEverpayTxResult extends PostEverpayTxResult {
everpayTx: EverpayTx
everHash: string
}
SignMessageResult
export interface SignMessageResult {
message: string
sig: string
}
VerifyMessageParams
export interface VerifyMessageParams {
account: string
type: 'register' | 'sign'
message: string
sig: string
}
VerifyMessageResult
export interface VerifyMessageResult {
publicId: string
public: string
}
SmartAccountAuthResult
export interface SmartAccountAuthResult {
account: string
publicId: string
public: string
type: 'sign' | 'register'
message: string
sig: string
}