跳到主要内容

操作类接口

介绍

在创建 HyMatrix 实例时,根据传递的 accid,privateKey,signer,arJWK,url

accid: 账户地址。

privateKey: Ethereum 私钥, 由 '0x' + 64位私钥, 共 66 位。

arJWK: arweave JWKInterface JSON 文件 或 use_wallet

signer: Ethereum 签名, 通过 new Web3Provider(window.ethereum) 创建。可通过 hymatrix-js 导出 Web3Provider

url: 可指定节点url 发起请求。

信息
  1. 在 HyMatrix 网络环境下,每一个 processId 都有固定的节点来处理交易。
  2. 在发送交易前,需要通过 getNodesByProcess 来获取 processId 对应的节点。
  3. 在创建 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 网络发送交易。

参数

字段是否必需描述
processIdYESprocessId:process 地址
tagsYESTag 类型,以转账为例 tags 应该是,包含 [{ name: 'Action', value: 'Transfer' },{ name: 'Recipient', value: 'addr' },{ name: 'Quantity', value: 'amt' }]
dataNOprocessId:签名数据,可选,默认为空。

示例

// 转账:以 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"
}

更多消息请前往 /sendMessage