PRESS.one 开发者社区

PRESS.one 开发者社区

  • 文档
  • 博客
  • 开发者论坛

›Node.js SDK 文档

指南

  • 简介
  • DApp 开发流程
  • 创建 DApp
  • 数字签名相关知识
  • PRS 协议

REST API 文档

  • 概述
  • API 鉴权
  • 用户授权
  • 获取数字签名
  • 签名文件相关
  • 合约相关
  • 钱包相关

Node.js SDK 文档

  • SDK 安装
  • 用户授权
  • 签名文件相关
  • 合约相关
  • 钱包相关

合约相关

  • Contract#getTemplates
  • Contract#create
  • Contract#bind
  • Contract#getContract
  • Contract#getContracts
  • Contract#createOrder
  • Contract#getOrdersByContractRId
  • Contract#getPurchasedOrders

getTemplates

获取 PRS 提供的合约模板

getTemplates(type)
  • type: 模板类型,'image'图片授权购买模板、'text'文章授权购买模板。

Example

const client = new PRS({ env: 'env', debug: true, address: authAddress, token: token });
const templatesRes = client.contract.getTemplates('text');

合约模板格式

PRSC Ver 0.1

Name 文章的授权购买

Desc 你购买的授权许可不具备排他性,不可再授权,不可转让。\\n不得直接转售、分销、共享、转让、出租这些数字内容,不得提供下载,不可嵌入服务器,不可包含在网页模板或设计模板中。\\n不得以明示或暗示的方式虚假声明你购买的该数字内容是由你或其它人所创建,或虚假声明你或其他人对你购买的该数字内容持有著作权。\\n不可将所购买的数字内容用于任何非法、淫秽、诽谤、虚假内容之中,或用于会被认为是非法、淫秽、诽谤、虚假内容的方式。

Receiver becd34540fefeab83730ffb479e98ee12fa1337e

License usage1 PRS:0.1 Terms: 个人授权许可,只能用于个人目的的转载、 引用、结集。\\n你可以全文或部分转载你购买的文本内容,或在不改变作者原意和立场的情况下编辑文本。任何情况下必须标明原文作者及出处。不标记原作者或出处通常会被视为剽窃行为。\\n不可用于商业用途(包括且不限于政府、 教育、 商业机构、非营利组织、社会团体、经营类网站及其它以营利为目的的组织机构或服务)。

License usage2 PRS:0.5 Terms: 商用授权许可,用于营利、 商业或经营目的转载、 引用、结集。如:\\n- 用于网站、软件、移动应用、社交媒体、邮件、电子书\\n- 用于印刷媒体如 杂志、 报纸、 书籍\\n- 用于广告、市场活动、宣传推广用途的内容\\n你可以全文或部分转载你购买的文本内容,或在不改变作者原意和立场的情况下编辑文本。任何情况下必须标明原文作者及出处。不标记原作者或出处通常会被视为剽窃行为。

上面是 V1 版本 PRS 合约模板:

  • Name: 合约名称。
  • Desc: 合约描述。
  • Receiver: 收款人地址。
  • License: 合约用途。 License {{用途编号,合约内唯一}} PRS:{{Token金额}} Terms: {{用途条款}}

注意:合约描述以及用途条款文本中的换行符 \n 需要转换为\\n,显示时可以再转换回来。

create

通过合约源码,创建合约。

create(code)
  • code: 合约源码,可以请求合约模板接口获取。

Example

const client = new PRS({ env: 'env', debug: true, address: authAddress, token: token });
const code = `PRSC Ver 0.1
    Name 购买授权
    Desc 这是一个\\n测试合约
    Receiver ${authAddress}
    License usage1 CNB:0.001 Terms: 这是个人使用条款,禁止\\n商业应用。
    License usage2 CNB:0.002 Terms: 这是商业使用条款,允许\\n修改和复制。`;
const contractRes = await client.contract.create(code);
const contractRId = contractRes.body.contract.rId;

bind

为指定文件绑定合约。

bind(contractRId, fileRId, beneficiaryAddress)
  • contractRId: 创建合约成功之后返回的 rId。
  • fileRId: 需要绑定合约的文件 rId。
  • beneficiaryAddress: 受益人 address。

Example

const bindRes = await client.contract.bind(contractRId, fileRId, authAddress);

getContract

获取合约详情。

getContract(contractRId)
  • contractRId: 创建合约成功之后返回的 rId。

Example

const res = await client.contract.getContract(contractRId);

getContracts

获取我的合约列表。

getContracts(pageOpts)
interface pageOpts{
  limit: number;
  offset: number;
}

Example

const res = await client.contract.getContracts({offset: 0, limit: 1});

createOrder

购买合约。

createOrder(contractRId, fileRId, licenseType)
  • contractRId: 合约 rId。
  • fileRId: 文件 rId。
  • licenseType: 需要购买的 licenseType。

Example

const res = await client.contract.createOrder(contractRId, fileRId, 'usage1');

getOrdersByContractRId

获取合约交易记录。

getOrdersByContractRId(contractRId, pageOpts)

Example

const res = await client.contract.getOrdersByContractRId(contractRId, { offset: 0, limit: 1 });

getPurchasedOrders

获取已购合约列表。

getPurchasedOrders(pageOpts)

Example

const res = await client.contract.getPurchasedOrders({ offset: 0, limit: 1 });
← 签名文件相关钱包相关 →
  • getTemplates
  • create
  • bind
  • getContract
  • getContracts
  • createOrder
  • getOrdersByContractRId
  • getPurchasedOrders
文档
介绍基础知识创建 DApp创建合约
社区
TwitterMedium微信公众号开发者论坛
更多
官方博客GitHub
Copyright © 2023 PRESSone