NAV
shell javascript

概述

111

ShowMAN是ShowPay MetaID Accessing & Networking,ShowPay出品的MetaID相关读取和上链工具组合。目的是方便第三方开发者快速开展基于MetaID的开发。

我们提供了查询和链上操作的两类服务

ShowMANDB

ShowMANDB是ShowPay的MetaID缓存数据库服务,这是一个基于MetaID的数据库,提供MetaID相关的Metanet组织数据,以及MetaID的基本信息接口。

ShowMANDB 中存储了Metanet的基本信息,包括节点公钥等,也包含了MetaID中的所有信息。用户可以很方便的获取对应信息,展示自己的应用数据。

ShowMANQuery

与之配套的是ShowMANQuery, 一个混合使用MongoDB Query和自定义JSON作为查询语句的在线MetaID数据,查询工具,方便使用者自定义数据请求和返回。

我们注意到当用户使用自定义协议的数据的时候,对数据的检索成本将变得高,我们将提供MetaID中协议Data部分内容的key/value查询,这样客户端可以很方便的获取赛选之后的数据信息,详细接口在 后续ShowMANQuery会有更多说明。

ShowMANSocket

ShowMANSocket提供实时的用户MetaID数据推送,我们将主网上与用户相关的MetaID交易通过websocket推送到用户客户端,实现消息实时到达。

ShowMANAPI

ShowMANAPI是showPay 推出的一个定制化聚合API接口服务。

对于ShowMANQuery的请求来说,有些复杂应用,一些聚合式的操作需要多次请求,可能网络io会成为开发者关注的重点,多次请求的网络响应花费是比较大的,对于此我们专门针对某些复杂应用推出定制化的聚合API接口服务。

比如,有个点赞的协议可以针对其他MetaID-Tx发起点赞,而你需要获取到一系列协议的所有点赞协议信息,我们可以提供一个协议请求列表,每个item中所有点赞数目或者具体的点赞交易信息,这样可以帮助用户一次请求快速的获得想要的信息。

ShowMANUtils

ShowMANUtils 工具包是一个包括加密解密等协议常用到的工具库,我们提供了包括ECDH等多个加密基础工具,图片数据处理工具,BRFC生成工具等,方便开发者可以更快的使用MetaID。

我们还提供了MetaID-js 方便用户在网页开发中之嵌入MetaID, 使用OAUTH2.0安全的操作用户的链上操作。

js-MetaID

初始化之后,可以获取MetaID,和发起MetaID交易的基本功能。链上操作封装,第三方应用可以专注在自己的业务上。

ShowMANDB

https://api.showmoney.app/showMANDB

ShowMANDB 数据结构

参数名称 类型 描述
metanetId string metanet ID
rootTxId string 所属顶点TxId
txId string 交易id
vouts []*MetaTxOut vouts
parts []string metanet 的数据
address string address
publicKey string publicKey
parentTxTd string 父txId
metaId string metaId tag
nodeName string 协议名称
data interface 数据
encrypt string 加密方式
version string 版本
dataType string 数据类型
encoding string 编码格式
blockHeight int64 所在块高
timestamp int64 时间戳
isValid bool 是否有效
isNew bool 是否最新
fee uint64 该meta数据的费用

获取MetaID的Info

/api/v1/query/getMetaIDInfo/<rootTxId>

请求参数

参数名称 类型 是否可空 长度限制 描述
rootTxId string MetaID

响应参数

参数名称 类型 是否可空 长度限制 描述
metaIdTag string metaId标识
infoTxId string info的TxId
protocolTxId string protocol的TxId
name string 名称
email string Email
phone string 手机号
avatar string 头像,hexString
// 请求 

https://api.showmoney.app/showMANDB/api/v1/query/getMetaIDInfo/a717f2b8364ddab277216408230b1485d28ed3a0bd4b00ab7c7b2437fe58af2e
// 响应数据:
 {
  "result": {
    "metaIdTag": "TestShowID",
    "infoTxId": "2e8ae6892b9b3873dcaa9d2f03a00325813cdc2c0e739856c1df622ed9c21090",
    "protocolTxId": "9e7f51a6af7d7c760ca003a4fd984987974d02a3b4cc8ba4042f8a16871654ba",
    "name": "Mark42",
    "email": "",
    "phone": "42494531037803de4a6378a98bf5f3164c830ff9a28c59684071146c54a7c56e052c795e4b492aa9647bd975b7988c0c046df3ce75cfe6fae6457f55b5992b62ea5dd74ff21a6f81f6787ff490dc6a683b9a34144599d13177372d5aa4c01ea967871dc3ca",
    "avatar": "..."
  },
  "code": 200,
  "msg": "success",
  "time": 1591329356028,
  "error": "null"
}

获取节点信息

获取某个节点信息

/api/v1/metanet/getNode/<txId>

请求参数

参数名称 类型 是否可空 长度限制 描述
txId string txId

响应参数

data

参数名称 类型 是否可空 长度限制 描述
nodeTxId int64 节点txId
nodeAddress string 节点地址
nodePublicKey string 节点公钥
parentTxId string 父节点txId
parentAddress string 父节点地址
parentPublicKey string 父节点公钥
outputIndex int64 所在索引
blockHeight int64 块高
rootTxId string 根节点txId
rootAddress string 根节点地址
rootPublicKey string 根节点公钥
timestamp int64 时间戳

请求响应实例

api请求数据: 
    https://api.showmoney.app/showMANDB/api/v1/metanet/getNode/9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c

响应数据:
{
  "result": {
    "nodeTxId": "9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c",
    "nodeAddress": "1KrXEiKZtri9DnndD1MVDG5e1yXA5HNChn",
    "nodePublicKey": "NULL",
    "parentTxId": "c37ee0eef4a98a192c42f28d8c66d3b10bd07a4c84d6a50445c9c9674b1179ed",
    "parentAddress": "1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7",
    "parentPublicKey": "",
    "outputIndex": 0,
    "blockHeight": 631827,
    "rootTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
    "rootAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
    "rootPublicKey": "NULL",
    "timestamp": 1587633554062
  },
  "code": 200,
  "msg": "success",
  "time": 1590031471614,
  "error": "null"
}

获取MetaID节点parts信息

/api/v1/metanet/getParts/<txId>

请求协议:HTTP GET

功能简介:获取parts

请求参数

参数名称 类型 是否可空 长度限制 描述
txId string txId

响应参数

data

参数名称 类型 是否可空 长度限制 描述
txId string 节点txId
outputIndex int64 所在索引
blockHeight int64 块高
raw string 脚本
parts []string 解析后的parts

请求响应实例

// api请求数据: 
   https://api.showmoney.app/showMANDB/api/v1/metanet/getParts/9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c

// 响应数据:
{
  "result": {
    "txId": "9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c",
    "blockHeight": 631827,
    "outputIndex": 0,
    "raw": "006a046d65746122314b725845694b5a74726939446e6e6444314d56444735653179584135484e43686e4063333765653065656634613938613139326334326632386438633636643362313062643037613463383464366135303434356339633936373462313137396564064d6574614944046e616d6505416c696365013004302e30390a746578742f706c61696e055554462d38",
    "parts": [
      "OP_0",
      "OP_RETURN",
      "meta",
      "1KrXEiKZtri9DnndD1MVDG5e1yXA5HNChn",
      "c37ee0eef4a98a192c42f28d8c66d3b10bd07a4c84d6a50445c9c9674b1179ed",
      "MetaID",
      "name",
      "Alice",
      "0",
      "0.09",
      "text/plain",
      "UTF-8"
    ]
  },
  "code": 200,
  "msg": "success",
  "time": 1588077699845,
  "error": "null"
}


获取根节点

/api/v1/metanet/getRoot/<txId>

请求协议:HTTP GET

功能简介:获取根节点

请求参数

参数名称 类型 是否可空 长度限制 描述
txId string txId

响应参数

data

参数名称 类型 是否可空 长度限制 描述
txId string 节点txId
rootTxId string 根节点txId
rootAddress string 根节点地址
rootPublicKey string 根节点公钥

请求响应实例

api请求数据: 
    https://api.showmoney.app/showMANDB/api/v1/metanet/getRoot/9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c

响应数据:
 {
  "result": {
    "nodeTxId": "9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c",
    "rootTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
    "rootAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
    "rootPublicKey": "NULL"
  },
  "code": 200,
  "msg": "success",
  "time": 1588131611869,
  "error": "null"
}

获取子节点

/api/v1/metanet/getChildren/<txId>

请求参数

参数名称 类型 是否可空 长度限制 描述
txId string txId

响应参数

data

参数名称 类型 是否可空 长度限制 描述
nodeTxId int64 节点txId
nodeAddress string 节点地址
nodePublicKey string 节点公钥
parentTxId string 父节点txId
parentAddress string 父节点地址
parentPublicKey string 父节点公钥
outputIndex int64 所在索引
blockHeight int64 块高
timestamp int64 时间戳

请求响应实例

api请求数据: 
    https://api.showmoney.app/showMANDB/api/v1/metanet/getChildren/8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86

响应数据:
{
  "result": [
    {
      "nodeTxId": "c37ee0eef4a98a192c42f28d8c66d3b10bd07a4c84d6a50445c9c9674b1179ed",
      "nodeAddress": "1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7",
      "nodePublicKey": "NULL",
      "parentTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
      "parentAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
      "parentPublicKey": "",
      "outputIndex": 0,
      "blockHeight": 631827,
      "timestamp": 1588043791083
    },
    {
      "nodeTxId": "e24fd7d979e73528707ed8af267e5d453bb8cf65e5cb51a04234347e9d27c539",
      "nodeAddress": "196iPAgmCyFRtt4MsdKvtcKZDVRpMdKFMc",
      "nodePublicKey": "NULL",
      "parentTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
      "parentAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
      "parentPublicKey": "",
      "outputIndex": 0,
      "blockHeight": 631827,
      "timestamp": 1588043791086
    }
  ],
  "code": 200,
  "msg": "success",
  "time": 1588226921645,
  "error": "null"
}

获取节点树

/api/v1/metanet/getTree/<txId>

请求参数

参数名称 类型 是否可空 长度限制 描述
txId string txId

*****************************响应参数 *********************************************

data

参数名称 类型 是否可空 长度限制 描述
txId string 节点txId
deep int64 树总层数
nodeTotal int64 树总节点数
nodeTree []*NodeTree 树结构

NodeTree

参数名称 类型 是否可空 长度限制 描述
nodeTxId int64 节点txId
nodeAddress string 节点地址
nodePublicKey string 节点公钥
parentTxId string 父节点txId
parentAddress string 父节点地址
parentPublicKey string 父节点公钥
outputIndex int64 所在索引
blockHeight int64 块高
timestamp int64 时间戳
isSelf bool 是否所查询的txId自己
children []*NodeTree 树结构

请求响应实例

api请求数据: 
    https://api.showmoney.app/showMANDB/api/v1/metanet/getTree/8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86

响应数据:
{
  "result": {
    "txId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
    "deep": 4,
    "nodeTotal": 5,
    "nodeTree": {
      "nodeTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
      "nodeAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
      "nodePublicKey": "NULL",
      "parentTxId": "NULL",
      "parentAddress": "NULL",
      "parentPublicKey": "NULL",
      "outputIndex": 0,
      "blockHeight": 631827,
      "timestamp": 1587633554015,
      "isSelf": true,
      "children": [
        {
          "nodeTxId": "c37ee0eef4a98a192c42f28d8c66d3b10bd07a4c84d6a50445c9c9674b1179ed",
          "nodeAddress": "1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7",
          "nodePublicKey": "NULL",
          "parentTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
          "parentAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
          "parentPublicKey": "NULL",
          "outputIndex": 0,
          "blockHeight": 631827,
          "timestamp": 1587633554055,
          "isSelf": false,
          "children": [
            {
              "nodeTxId": "9f0fa21bfe7706fe51decd468069cd8610d7ceb1a1265f2e17559b75d95cc93c",
              "nodeAddress": "1KrXEiKZtri9DnndD1MVDG5e1yXA5HNChn",
              "nodePublicKey": "NULL",
              "parentTxId": "c37ee0eef4a98a192c42f28d8c66d3b10bd07a4c84d6a50445c9c9674b1179ed",
              "parentAddress": "1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7",
              "parentPublicKey": "NULL",
              "outputIndex": 0,
              "blockHeight": 631827,
              "timestamp": 1587633554062,
              "isSelf": false,
              "children": null
            }
          ]
        },
        {
          "nodeTxId": "e24fd7d979e73528707ed8af267e5d453bb8cf65e5cb51a04234347e9d27c539",
          "nodeAddress": "196iPAgmCyFRtt4MsdKvtcKZDVRpMdKFMc",
          "nodePublicKey": "NULL",
          "parentTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
          "parentAddress": "13DQH5o2WwH72ojKi2GRQAhUuEBUs4euhs",
          "parentPublicKey": "NULL",
          "outputIndex": 0,
          "blockHeight": 631827,
          "timestamp": 1587633554058,
          "isSelf": false,
          "children": [
            {
              "nodeTxId": "f678722820b8aa8136bf6f41228d8e6f4983c7747f14b014a61df2dd2d1a41fb",
              "nodeAddress": "1J7e9Y6jTPnDoCkfFsmvzxketgDCf8Km7X",
              "nodePublicKey": "NULL",
              "parentTxId": "e24fd7d979e73528707ed8af267e5d453bb8cf65e5cb51a04234347e9d27c539",
              "parentAddress": "196iPAgmCyFRtt4MsdKvtcKZDVRpMdKFMc",
              "parentPublicKey": "NULL",
              "outputIndex": 0,
              "blockHeight": 631827,
              "timestamp": 1587633554116,
              "isSelf": false,
              "children": [
                {
                  "nodeTxId": "487aa4deecaa5eabd24d7dfb97ded646e71503b26ac9100ff411822459b28daa",
                  "nodeAddress": "12cLrusqwuq6Waryp2u5bmvZ6jskYAnb2W",
                  "nodePublicKey": "NULL",
                  "parentTxId": "f678722820b8aa8136bf6f41228d8e6f4983c7747f14b014a61df2dd2d1a41fb",
                  "parentAddress": "1J7e9Y6jTPnDoCkfFsmvzxketgDCf8Km7X",
                  "parentPublicKey": "NULL",
                  "outputIndex": 0,
                  "blockHeight": 631827,
                  "timestamp": 1587633554120,
                  "isSelf": false,
                  "children": null
                }
              ]
            }
          ]
        }
      ]
    }
  },
  "code": 200,
  "msg": "success",
  "time": 1590031505103,
  "error": "null"
}

根据address获取节点

/api/v1/metanet/getMetaNodeByAddress/<address>

请求参数

参数名称 类型 是否可空 长度限制 描述
address string txId

响应参数

data

参数名称 类型 是否可空 长度限制 描述
nodeTxId int64 节点txId
nodeAddress string 节点地址
nodePublicKey string 节点公钥
parentTxId string 父节点txId
parentAddress string 父节点地址
parentPublicKey string 父节点公钥
outputIndex int64 所在索引
blockHeight int64 块高
timestamp int64 时间戳

请求响应实例

api请求数据: 
    https://api.showmoney.app/showMANDB/api/v1/metanet/getMetaNodeByAddress/1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7

响应数据:
{
  "result": [
    {
      "nodeTxId": "c37ee0eef4a98a192c42f28d8c66d3b10bd07a4c84d6a50445c9c9674b1179ed",
      "nodeAddress": "1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7",
      "nodePublicKey": "NULL",
      "parentTxId": "8e9b396eb52752c95cfd45b86f9aa90e07e804ac38ff7f7f87669b0af2f06c86",
      "parentAddress": "NULL",
      "parentPublicKey": "NULL",
      "outputIndex": 0,
      "blockHeight": 631827,
      "rootTxId": "",
      "rootAddress": "",
      "rootPublicKey": "",
      "timestamp": 1588043791083
    },
    {
      "nodeTxId": "a5c05146de8fa49d8641cf34ae556c982048cd74a22731285dd744a48b5ed400",
      "nodeAddress": "1GimPAbPAkmexbbdWqe9fQCQpgZdGNdjy7",
      "nodePublicKey": "021a50ef584fa34b6d4067cd8457d38e8e20c9550b0cdc4fd7f00b2d67177128d6",
      "parentTxId": "57fab4aab7af94f7ed885cfc32ff6b15a4d90d400dea652f85390b4bec7b1051",
      "parentAddress": "NULL",
      "parentPublicKey": "NULL",
      "outputIndex": 0,
      "blockHeight": 632379,
      "rootTxId": "",
      "rootAddress": "",
      "rootPublicKey": "",
      "timestamp": 1588044715641
    }
  ],
  "code": 200,
  "msg": "success",
  "time": 1588254263493,
  "error": "null"
}

query查询

query查询 接口

/api/v1/query/queryFindMetaData/<content>

请求参数

参数名称 类型 是否可空 长度限制 描述
find map[string]interface 查询条件
skip int64 数据偏移量
limit int64 数据限制量,默认10,负数为无限制
sort map[string]int 排序,-1为倒序,1为顺序
format map[string]string 返回格式

响应参数

data

参数名称 类型 是否可空 长度限制 描述
page int64 当前页数
pageSize int64 页容量
total int64 数据总量
data []map[string]string 数据

ShowMetaData

参数名称 类型 是否可空 长度限制 描述
metanetId string metanet ID
rootTxId string 所属顶点TxId
txId string 交易id
vouts []*MetaTxOut vouts
parts []string metanet 的数据
address string address
publicKey string publicKey
parentTxTd string 父txId
metaId string metaId tag
nodeName string 协议名称
data interface 数据
encrypt string 加密方式
version string 版本
dataType string 数据类型
encoding string 编码格式
blockHeight int64 所在块高
timestamp int64 时间戳
isValid bool 是否有效
isNew bool 是否最新
fee uint64 该meta数据的费用

MetaTxOut

参数名称 类型 是否可空 长度限制 描述
txId string 交易id
index uint64 索引
address string 地址
value uint64 金额
scriptPubKey string 脚本
type string 类型

api请求数据: 将全球json {"find":{"data.content":"这是一个测试内容"}, "skip":0, "limit":1}经过Base64编码之后作为参数请求。

  https://api.showmoney.app/showMANDB/api/v1/query/queryFindMetaData/eyJmaW5kIjp7ImRhdGEuY29udGVudCI6Iui_meaYr-S4gOS4qua1i-ivleWGheWuuSJ9LCAic2tpcCI6MCwgImxpbWl0IjowfQ==
// 返回结果
{
  "result": {
    "page": 0,
    "pageSize": 0,
    "total": 2,
    "data": [
      {
        "metanetId": "",
        "txId": "487aa4deecaa5eabd24d7dfb97ded646e71503b26ac9100ff411822459b28daa",
        "vouts": [
          {
            "txId": "487aa4deecaa5eabd24d7dfb97ded646e71503b26ac9100ff411822459b28daa",
            "index": 0,
            "address": "",
            "value": 0,
            "scriptPubKey": "006a046d657461223132634c72757371777571365761727970327535626d765a366a736b59416e6232574066363738373232383230623861613831333662663666343132323864386536663439383363373734376631346230313461363164663264643264316134316662064d6574614944223132634c72757371777571365761727970327535626d765a366a736b59416e623257417b22636f6e74656e74223a22e8bf99e698afe4b880e4b8aae6b58be8af95e58685e5aeb9222c2263726561746554696d65223a313538373631303632323132337d013004302e30390a746578742f706c61696e055554462d38",
            "type": "NullData"
          },
          {
            "txId": "487aa4deecaa5eabd24d7dfb97ded646e71503b26ac9100ff411822459b28daa",
            "index": 1,
            "address": "1J7e9Y6jTPnDoCkfFsmvzxketgDCf8Km7X",
            "value": 2183,
            "scriptPubKey": "76a914bbbba49b5ba95f9fcbf1f2a1b325999fc357963f88ac",
            "type": "P2PKH"
          }
        ],
        "parts": [
          "OP_0",
          "OP_RETURN",
          "meta",
          "12cLrusqwuq6Waryp2u5bmvZ6jskYAnb2W",
          "f678722820b8aa8136bf6f41228d8e6f4983c7747f14b014a61df2dd2d1a41fb",
          "MetaID",
          "12cLrusqwuq6Waryp2u5bmvZ6jskYAnb2W",
          "{\"content\":\"这是一个测试内容\",\"createTime\":1587610622123}",
          "0",
          "0.09",
          "text/plain",
          "UTF-8"
        ],
        "address": "12cLrusqwuq6Waryp2u5bmvZ6jskYAnb2W",
        "publicKey": "NULL",
        "parentTxTd": "f678722820b8aa8136bf6f41228d8e6f4983c7747f14b014a61df2dd2d1a41fb",
        "metaId": "MetaID",
        "nodeName": "12cLrusqwuq6Waryp2u5bmvZ6jskYAnb2W",
        "data": {
          "content": "这是一个测试内容",
          "createTime": 1587610622123
        },
        "encrypt": "0",
        "version": "0.09",
        "dataType": "text/plain",
        "encoding": "UTF-8",
        "blockHeight": 631827,
        "timestamp": 1587633554
      },
      {
        "metanetId": "53d2a9e3437b45933a3a37ffb81d23a81724d50649aea0afc8ff3c30a34fad84",
        "txId": "87b06ecfa3783a41c34235c1846b9f6daee773be7d74d65e482f6805b43b7422",
        "vouts": [
          {
            "txId": "87b06ecfa3783a41c34235c1846b9f6daee773be7d74d65e482f6805b43b7422",
            "index": 0,
            "address": "",
            "value": 0,
            "scriptPubKey": "006a046d657461423033666230316131363533396639613635633265303865353439616134393862643238623133373032613434653762663931313865623366646235633132653630374065393935626265623734646130353839303065396665633432653164336265343636383962376235656530633338393963343833613932323933323361663962064d657461494442303366623031613136353339663961363563326530386535343961613439386264323862313337303261343465376266393131386562336664623563313265363037417b22636f6e74656e74223a22e8bf99e698afe4b880e4b8aae6b58be8af95e58685e5aeb9222c2263726561746554696d65223a313538373631303632323132337d013004302e30390a746578742f706c61696e055554462d38",
            "type": "NullData"
          },
          {
            "txId": "87b06ecfa3783a41c34235c1846b9f6daee773be7d74d65e482f6805b43b7422",
            "index": 1,
            "address": "1J7e9Y6jTPnDoCkfFsmvzxketgDCf8Km7X",
            "value": 1677,
            "scriptPubKey": "76a914bbbba49b5ba95f9fcbf1f2a1b325999fc357963f88ac",
            "type": "P2PKH"
          }
        ],
        "parts": [
          "OP_0",
          "OP_RETURN",
          "meta",
          "03fb01a16539f9a65c2e08e549aa498bd28b13702a44e7bf9118eb3fdb5c12e607",
          "e995bbeb74da058900e9fec42e1d3be46689b7b5ee0c3899c483a9229323af9b",
          "MetaID",
          "03fb01a16539f9a65c2e08e549aa498bd28b13702a44e7bf9118eb3fdb5c12e607",
          "{\"content\":\"这是一个测试内容\",\"createTime\":1587610622123}",
          "0",
          "0.09",
          "text/plain",
          "UTF-8"
        ],
        "address": "12cLrusqwuq6Waryp2u5bmvZ6jskYAnb2W",
        "publicKey": "03fb01a16539f9a65c2e08e549aa498bd28b13702a44e7bf9118eb3fdb5c12e607",
        "parentTxTd": "e995bbeb74da058900e9fec42e1d3be46689b7b5ee0c3899c483a9229323af9b",
        "metaId": "MetaID",
        "nodeName": "03fb01a16539f9a65c2e08e549aa498bd28b13702a44e7bf9118eb3fdb5c12e607",
        "data": {
          "content": "这是一个测试内容",
          "createTime": 1587610622123
        },
        "encrypt": "0",
        "version": "0.09",
        "dataType": "text/plain",
        "encoding": "UTF-8",
        "blockHeight": 632379,
        "timestamp": 1587951949
      }
    ]
  },
  "code": 200,
  "msg": "success",
  "time": 1589189378703,
  "error": "null"
}

路径解析

路径是一系列被.分隔的key拼接而成. 路径可能包含通配符'*'和'?'. 通过下标访问数组值. 通过'#'来获取值在元素中的排位或访问子路径. .和通配符可以通过'\'来转义. 你同样能通过#[...]来查询数组中的第一个匹配的项, 或通过'#[...]#'查询所有匹配的项. 查询支持==, !=, <, <=, >, >=比较运算符和'%'模糊匹配.

例如 请求数据:

{"find":{"metaId":"TestShowID","nodeName":"ShowText"}, "skip":0, "limit":0, "format":{"myTag":"metaId","have":"data","myIn":"data.content","h":"blockHeight", "t":"timestamp" ,"address of out":"vouts.0.address"}}
https://api.showmoney.app/showMANDB/api/v1/query/queryFindMetaData/eyJmaW5kIjp7Im1ldGFJZCI6IlRlc3RTaG93SUQiLCJub2RlTmFtZSI6IlNob3dUZXh0In0sICJza2lwIjowLCAibGltaXQiOjAsICJmb3JtYXQiOnsibXlUYWciOiJtZXRhSWQiLCJoYXZlIjoiZGF0YSIsIm15SW4iOiJkYXRhLmNvbnRlbnQiLCJoIjoiYmxvY2tIZWlnaHQiLCAidCI6InRpbWVzdGFtcCIgLCJhZGRyZXNzIG9mIG91dCI6InZvdXRzLjAuYWRkcmVzcyJ9fQ==
// 响应数据:
{
  "result": {
    "page": 0,
    "pageSize": 0,
    "total": 10,
    "data": [
      {
        "address of out": "15b5g9trRPpCBygtyFqXFWxwmH1iksV8tE",
        "h": "631962",
        "have": "000000000000",
        "myIn": "",
        "myTag": "TestShowID",
        "t": 1587713749118
      },
      {
        "address of out": "1HyBrokj77qS5dDQTTAXi14KTBhVJp8TT1",
        "h": "632243",
        "have": "000000000000",
        "myIn": "",
        "myTag": "TestShowID",
        "t": 1587874038054
      },
      {
        "address of out": "1AfeGEqwfg2e6jXCtq66LHprhZdN2YUSja",
        "h": "632383",
        "have": "{"content":"ShowText test data"}",
        "myIn": "ShowText test data",
        "myTag": "TestShowID",
        "t": 1587957048472
      },
      {
        "address of out": "1HqFY514e4BHJWhoLQSAYt8PApyt6S3iuX",
        "h": "632406",
        "have": "000000000001",
        "myIn": "",
        "myTag": "TestShowID",
        "t": 1587986958930
      },
      {
        "address of out": "1AESm8paj4uUYTqyPEsjSM1w3bfWRFRfw1",
        "h": "632406",
        "have": "{"content":"ShowText test data"}",
        "myIn": "ShowText test data",
        "myTag": "TestShowID",
        "t": 1587986959013
      },
      ...
    ]
  },
  "code": 200,
  "msg": "success",
  "time": 1590030882788,
  "error": "null"
}

MetaID

MetaID npm插件,方便开发者导入安装,操作和用户相关的MetaID信息

Setup

npm 安装 MetaID

$ npm install --save metaidjs

Usage

导入对应的包 metaidjs,实例化对象

// 导入对应的包
import MetaIdJs from "metaidjs"
// 实例化对象
const metaIdJs = new MetaIdJs({
  oauthSettings: {
    clientId: CLIENT_ID,
    redirectUri: REDIRECT_URI
  },
  onLoaded: () => {
  },
  onError: (res) => {
    console.log(res)
  }
})

实例化参数说明

参数 必须 类型 默认值 描述
oauthSettings Object Oauth2.0登录信息,包含 clientId 和 redirectUri 内容
onLoaded Function 脚本加载完成的回调函数
onError Function 通用错误回调函数,用于自定义处理不同的错误类型

基本响应参数格式说明

参数 必须 类型 默认值 描述
code number 响应结果代码:
200: 操作成功
201: 用户认证失败
202: 用户认证已经过期
204: 通用错误
status string
data Object 实际响应内容,如果是错误响应,里面会包含错误信息 message

Methods

getUserInfo()

获取用户metaid-info信息

metaIdJs.getUserInfo({
  accessToken: ACCESS_TOKEN,
  callback: (res) => {
  }
})

调用参数说明

参数 必须 类型 默认值 描述
accessToken string
callback Function 回调函数
// 返回
{
  code: 200,
  status: 'success',
  data: {
    address: "14ZAj2BpLSB1nSd24TXUhu3jX1X42R89d9"
    email: ""
    emailEncrypt: ""
    headUrl: ""
    headUrlEncrypt: "0"
    infoTxId: "e3d3fc6392cb61e99168598dd7ebb1c8043aeed4170186ceccb181a79fdbc200"
    name: ""
    nameEncrypt: "0"
    phone: "13712345671"
    phoneEncrypt: "1"
    protocolTxId: "64c7b76a82b070042c817a55b897b133a87afa067ded0081f1173f0197a9a82f"
    showId: "0a9d30a38c44aba79b2d023d667ca4558350727eb0b71efdff6aa6695200f78f"
    timestamp: 1589185608226
    xpub: "xpub6CuZbuP1UX7VyA8NBXQdhQr93h5Eerr8RNGi2DfjyPTukqmNbYB"
  }
}

addProtocolNode()

发起Protocols node操作

// 生成Protocols node
metaIdJs.addProtocolNode({
  accessToken: ACCESS_TOKEN,
  nodeName: 'ShowText',
  brfcId: 'a851d46702dc',
  data: JSON.stringify({
    "title": "test title",
    "content": 'test content',
    "contentType": "text/plain",
  }),
  dataType: 'application/json',
  callback: (res) => {
  }
})

调用参数说明

参数 必须 类型 默认值 描述
accessToken string
nodeName string 对应metaID node_name
data string 对应metaID data
encrypt number 0 对应metaID encryp
version string 0.0.9 对应metaID version
dataType string text/plain 对应metaID data_type
encoding string UTF-8 对应metaID encoding
isFirstProtocolChild boolean true 是否是第一层protocols子节点
brfcId string 如果是第一层protocols子节点需要带上brfc,将忽略data字段
path string 如果不是第一层protocols子节点, 需要带上完整路径 比如/Protocols/ShowBuzz 将在这个节点下创建Node
payTo Array 同时向指定地址转账,交易输出格式为 [{address: 'XXXXXXXXXX', amount: 1000}], 单位是聪
callback Function 回调函数
// 回调响应
{
  code: 200,
  status: 'success',
  data: {
  }
}

ShowMANSocket

文档即将上线

ShowMANUtils

文档即将上线