sendAndPay
功能
上传数据并支付存储费用。
示例
- Node
- Web
import { genNodeAPI } from 'arseeding-js'
const run = async () => {
const instance = await genNodeAPI('YOUR PRIVATE KEY')
const arseedUrl = '<https://arseed.web3infra.dev>'
const data = Buffer.from('need upload data ...')
const tag = '<chaintype-symbol-id>' // everPay 支持的 token tag (chainType-symbol-id)
const options = {
tags: [
{ name: 'Content-Type', value: 'data type' },
{ name: 'aa', value: 'aaa' }
]
}
const res = await instance.sendAndPay(arseedUrl, data, tag, options)
// If you need upload orders by sequence, you can configure the needSeq parameter to true
const res = await instance.sendAndPay(arseedUrl, data, tag, options, true)
console.log(res)
}
import { genAPI, genArweaveAPI } from 'arseeding-js'
const run = async () => {
// ethereum wallet
const instance = await genAPI(window.ethereum)
// arweave wallet
const instance = await genArweaveAPI(window.arweaveWallet)
const arseedUrl = '<https://arseed.web3infra.dev>'
const data = Buffer.from('need upload data ...')
const tag = '<chaintype-symbol-id>' // everPay 支持的 token tag (chainType-symbol-id)
const options = {
tags: [
{ name: 'Content-Type', value: 'data type' },
{ name: 'aa', value: 'aaa' }
]
}
const res = await instance.sendAndPay(arseedUrl, data, tag, options)
// If you need upload orders by sequence, you can configure the needSeq parameter to true
const res = await instance.sendAndPay(arseedUrl, data, tag, options, true)
console.log(res)
}
sendAndPay 函数 会同时完成上传和支付两个动作,请确保你的钱包在 everPay Protocol 上有充足的资产。如果使用自有 Arseeding 节点并打开 No_Fee 模式,请使用“只上传数据”的方式进行上传处理。
- 参数
- 类型
字段 | 描述 |
---|---|
arseedingUrl | arseedUrl 是需要配置的 Arseeding 后端服务地址,这里我们使用 permadao 提供的 Arseed 服务,URL 为:https://arseed.web3infra.dev 。 |
data | 需要上传的数据。 |
tag | 需要支付费用的 token tag ,如果你的 MetaMask 地址在 everPay 持有的是 usdc ,可通过 getTokenTagByEver('usdc') 获取 token tag ,具体使用查看getTokenTagByEver。 |
options | 配置你的 Arweave Tags,什么是 Arweave Tags 参考:这里。 |
tags | tags 中的 Content-Type 需要基于你上传的内容进行配置,例如 上传的 png 格式的图片,则配置为 image/png ,详细说明参考 Content-Type。 |
needSeq | Arseeding 支持顺序上链用户的订单,需要顺序上链则设置为 true 即可。 |
(
arseedingUrl: string
data: Buffer
tag: string
opts: DataItemCreateOptions
needSeq?: boolean
debug?: boolean
)
返回数据
- 返回示例
- 返回类型
{
everHash: '0xf88033873d3bfc525d9333ec51b60f3f3dc03f822a9a73f66a10ebbd944b29c6',
order: {
itemId: '2bpKpp0dtfFZE82-P0lOmeI5x4m2ynatFzdjBmCWd4k',
size: 192,
bundler: 'uDA8ZblC-lyEFfsYXKewpwaX-kkNDDw8az3IW9bDL68',
currency: 'USDC',
decimals: 6,
fee: '1141',
paymentExpiredTime: 1690702235,
expectedBlock: 1210331,
tag: 'ethereum-usdc-0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
}
}
{
everHash: string
order: {
itemId: string
size: number
bundler: string
currency: string
decimals: number
fee: string
paymentExpiredTime: number
expectedBlock: number
tag: string
}
}