操作类接口
介绍
在创建 HyMatrix 实例时,根据传递的 accid,privateKey,signer,arJWK,url。
accid: 账户地址。
privateKey: Ethereum 私钥, 由 '0x' +64位私钥, 共66位。
arJWK:arweave JWKInterfaceJSON 文件 或use_wallet
signer: Ethereum 签名, 通过new Web3Provider(window.ethereum)创建。可通过hymatrix-js导出Web3Provider。
url: 可指定节点url发起请求。
信息
- 在 HyMatrix 网络环境下,每一个
processId都有固定的节点来处理交易。 - 在发送交易前,需要通过 getNodesByProcess 来获取
processId对应的节点。 - 在创建
HyMatrix实例时,可通过url字段配置节点。
const hyMatrix = new HyMatrix({
url: 'https / http'
})
随后发起 sendMessage 交易时, 传递 processId, tags,data 可选:
export interface SendMessageParams {
processId: string
tags: Tag[]
data?: string
}
export interface Tag {
name: string
value: string
}
processId: string 类型,代表 进程的 id。
tags: Tag 类型, 包含 Action, Recipient,Quantity 等字段。
data: string 类型,代表 需要签名的数据。
// processId
const processId = ''
const recipient = ''
const amt = '100'
const tags = [
{ name: 'Action', value: 'Transfer' },
{ name: 'Recipient', value: recipient },
{ name: 'Quantity', value: amt }
]
sendMessage
通过 Hymatrix 网络发送交易。
参数
| 字段 | 是否必需 | 描述 |
|---|---|---|
| processId | YES | processId:process 地址 |
| tags | YES | Tag 类型,以转账为例 tags 应该是,包含 [{ name: 'Action', value: 'Transfer' },{ name: 'Recipient', value: 'addr' },{ name: 'Quantity', value: 'amt' }] |
| data | NO | processId:签名数据,可选,默认为空。 |
示例
// 转账:以 hmAR 为例
// 1. 确认转账的 processId
const processId = 'GuuH1wCOBatG-JoKu42NkJMC7Cx-rjD8F5EEICLTNP8'
// 2. 确认 收款地址和金额
const recipient = '' // ethAddress or arAddress
const amt = '100' // 转账金额
const tags = [
{ name: 'Action', value: 'Transfer' },
{ name: 'Recipient', value: recipient },
{ name: 'Quantity', value: amt }
]
// 3. 通过 processId 获取到指定的 url 节点,可成功 发起交易,// 若已知 url 可省略,减少请求,节约时间。
const urls = await new HyMatrix().getNodesByProcess(processId)
// 4. 创建 HyMatrix 实例
const hyMatrix = new HyMatrix({
arJWK: 'use_wallet',
url: urls[0]?.URL // 后续 hyMatrix 发起的所有请求统一从该参数的 url 下进行。
})
// 5 创建参数结构
const params = {
tags,
processId,
data: '' // 可选, 默认为空字符串
}
// 6. 发起交易
const result = await hyMatrix.sendMessage(params)
console.log(result.id) // 获取 messageID, 可通过其查具体交易记录
// wait.../ 稍等片刻后...
// 7. 查询交易记录 // tip: 会在指定 url 节点发起请求。
const resultTx = await hyMatrix.getResult(processId, result.id)
console.log(resultTx) // 获取详情交易信息
返回
{
"id": "vDDowE3NrNKfAyZtfEGaTLrkOhr3DDB2D_-Vs22Z8ig"
}