1.0.0 • Published 2 years ago

metaidjs-mvc v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

metaidjs

Setup

$ npm install --save metaidjs

引入到项目中

import MetaIdJs from "metaidjs"

Usage

实例化方法

const metaIdJs = new MetaIdJs({
  oauthSettings: {
    clientId: CLIENT_ID,
    clientSecret: CLIENT_SECRET,
    redirectUri: REDIRECT_URI
  },
  onLoaded: () => {
  },
  onError: (res) => {
    console.log(res)
  }
})

实例化参数说明

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

基本响应参数格式说明

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

Methods

  • getUserInfo()

获取用户metaid-info信息

例子

metaIdJs.getUserInfo(JSON.stringify({
  accessToken: ACCESS_TOKEN,
  callback: 'handleUserInfo',
}))

调用参数说明

参数必须类型默认值描述
accessTokenstring
callbackstring回调函数名

返回结果样例:

{
  "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"
  }
}

sendMetaDataTx()/addProtocolNode()

发起 Protocols node 操作

例子

// metaIdJs.addProtocolNode一样
metaIdJs.sendMetaDataTx({
  nodeName: "SimpleMicroblog",
  metaIdTag: "metaid",
  brfcId: "987654321",
  appId: "showBuzz",
  accessToken: "token",
  encrypt: 0,
  payCurrency: "BSV",
  payTo: [
    {
      amount: 2000,
      address: "1ad59XtDJMeaMAuXasFad1EU4h",
    },
  ],
  path: "/Protocols/SimpleMicroblog",
  dataType: "application/json",
  attachments: [
    {
      fileName: "PC0b3c7d089fa7d55720d6cf.png",
      fileType: "image/png",
      data: "89504ae426082",
      encrypt: 0,
    },
  ],
  data: JSON.stringify({ content: "这是一个测试内容", title: "测试标题" }),
  needConfirm: true,
  callback: function (res) {
    // 确认付款完后的回调
    if (res.code === 200) {
      if (typeof res === "string") {
        res = JSON.parse(res);
      }
      console.log(res.data.txid);
      // do something...
    } else {
      new Error(res.data.message);
      // do something...
    }
  },
  onCancel: function () {
    // 取消付款回调
    // do something...
  },
});

调用参数说明

参数必须类型默认值描述
accessTokenstring用户 accessToken
nodeNamestring节点标识名字
dataTypestringtext/plain可选项目。data 对应的数据类型,可用数据类型请参考:https://www.iana.org/assignments/media-types/media-types.xhtmls。默认为text/plain
autoRenamebooleantrue上链自动命名节点
encodingstringUTF-8对应 metaID encoding
datastring'NULL'对应 metaID data
attachmentsarray[]附件
encryptnumber0识该节点内容是否加密。本协议版本支持两种方式:0 为不加密;1 为 ECIES 加密,即加密 key 为对应节点的公钥,采用对应节点路径的私钥解密。默认为 0 不加密。
versionstring0.0.9对应 metaID version
brfcIdstring协议 Id
pathstring''如果不是第一层 protocols 子节点, 需要带上完整路径 比如/Protocols/ShowBuzz 将在这个节点下创建 Node
payCurrencystringbsv指定转账计价币种,支持 bsv 和 usd 两种,如果是 bsv 则计价单位为聪,如果是 usd 则计价单位为美元
payToarray[]同时向指定地址转账,交易输出格式为 {address: 'XXXXXXXXXX', amount: 1000}
metaIdTagstringmetaid固定为metaid
appIdString当前appId,用于统计来源
nodeKeystring编辑数据时需要指定当前节点的 publicKey
checkOnlybooleanfalse是否广播节点,默认false广播,为true时返回节点费率,txid之类信息,不广播
needConfirmbooleantrue用户是否需要支付前确认
callbackfunction完成回调函数 function({data:{txid, message}, code})
onCancelfunction取消回调函数
attachment
参数必须类型默认值描述
fileNametruestring文件名
fileTypetruestring文件格式
datatruestring文件hex(16进制)数据,explame:buffer.toString("hex")
filePublicKeyfalsestring编辑文件的时候必传
encrypttruenumber识该节点内容是否加密。本协议版本支持两种方式:0 为不加密;1 为 ECIES 加密,即加密 key 为对应节点的公钥,采用对应节点路径的私钥解密。默认为 0 不加密。

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
    "message": "Send transaction success",
    "txId": "f0ad74a0ff4663921b690f0aaf7cfc18ce7e"
  },
  "handlerId": "630090708621082410"
}
  • signMessage()

签名

例子

metaIdJs.signMessage({
  accessToken: ACCESS_TOKEN,
  data: {
    message:"",
    path:""
  },
  callback: 'handleSignMessage'
})

调用参数说明

参数必须类型默认值描述
accessTokenstring
datastringdata 数据
callbackstring回调函数名

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
    "pubkey": "<path对应的公钥>",
    "result": "<签名结果>"
  }
}

  • eciesEncryptData()

ECIES 加密数据

例子

metaIdJs.eciesEncryptData({
  accessToken: ACCESS_TOKEN,
  data: "",
  callback: 'handleEciesEncryptData'
})

调用参数说明

参数必须类型默认值描述
accessTokenstring
datastringdata 数据
callbackstring回调函数名

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
		"message": "Encrypt data success",
    "content": "<加密后的值>"
  }
}

  • eciesDecryptData()

ECIES 解密数据

例子

metaIdJs.eciesDecryptData({
  accessToken: ACCESS_TOKEN,
  data: "",
  callback: 'handleEciesDecryptData'
})

调用参数说明

参数必须类型默认值描述
accessTokenstring
datastringdata数据
callbackstring回调函数名

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
		"message": "Decrypt data success",
    "content": "<加密后的值>"
  }
}

  • ecdhEncryptData()

ECDH 加密数据

例子

metaIdJs.ecdhEncryptData({
  accessToken: ACCESS_TOKEN,
  data:{
    msg:"",
    publickey:""
  },
  callback: 'handleEcdhEncryptData'
})

调用参数说明

参数必须类型默认值描述
accessTokenstring
datastringdata 数据
callbackstring回调函数名

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
		"message": "Encrypt data success",
    "content": "<加密后的值>"
  }
}

  • ecdhDecryptData()

ECDH 解密数据

例子

metaIdJs.ecdhDecryptData({
  accessToken: ACCESS_TOKEN,
  data: {
    msg:"",
    publickey:""
  },
  callback: 'handleEcdhDecryptData'
})

调用参数说明

参数必须类型默认值描述
accessTokenstring
datastringdata数据
callbackstring回调函数名

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
		"message": "Decrypt data success",
    "content": "<加密后的值>"
  }
}

  • payToAddress() 即将上线功能

转账

例子

metaIdJs.payToAddress({
  accessToken: ACCESS_TOKEN,
  data: {
    to: [{
      address:"",
      amount: 123;
    }];
    currency: "";
    opReturn: "";
  },
  callback: 'handlePayToAddress'
})

调用参数说明

参数必须类型默认值描述
accessTokenstring
datastringdata数据
callbackstring回调函数名

data:

参数必须类型默认值描述
toArray目标
currencystringbsvsats或bsv

to:

参数必须类型默认值描述
addressstring目标地址,或paymail
amountnumber金额

返回结果样例:

{
  "code": 200,
  "status": "success",
  "data": {
		"txId": "dssdfsfds",
  }
}