合约相关
- 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 });