Skip to content

Task class

constructor

constructor(signerOrProvider: ethers.providers.Provider | ethers.Signer)

构造函数接受 Signer 或者 Provider 实例。该类由 POB 实例化,可直接使用实例方法。

createTemplate

创建任务模板。

函数签名

createTemplate(describe: AnySchema, registerFee?: string, feeToken?: string, feeReceiver?: string): Promise<TransactionResponse>

如何调用

const pob = new POB(provider)
// const params = [...]
pob.task.createTemplate(...params)

Request

参数名称类型必填简介
registerFeenumber模板使用费,表示当有人根据该模板创建时需要支付的费用
feeTokenSBTParams模板使用费的支付 token 地址
feeReceiverWorkflowParams模板使用费的受益人钱包地址。
describeobjectTasks 描述信息,必须符合 JSON-SchemaDescribe 规范。

Response

该方法返回一个 Promise<TransactionResponse> 对象。

submit

提交工作流下指定任务内容。

函数签名:

submit(workflow: string, taskIndex: number, content: { [key: string]: any }): Promise<TransactionResponse>

如何调用

const pob = new POB(provider)
pob.task.submit("workflow contract address", "task index", { content: "content"});

Request

参数名称类型必选默认值简介
workflowstring工作流合约地址
taskIndexstring | number任务的索引,为注册在该工作流中的索引,不是注册在协议中的索引。
contentobject提交的任务的工作内容,需要根据任务模板中 describe 解析的 Schema 来获取表单内容格式,规范可参考 Describe

Response

该方法返回一个 Promise<TransactionResponse> 对象。

approve

Reviewer 审批 issuer 提交的任务。

函数签名:

approve(workflow: string, taskIndex: number, content: { [key: string]: any }): Promise<TransactionResponse>

如何调用

const pob = new POB(provider)
pob.task.approve("workflow contract address", "task index", { content: "content"});

Request

参数名称类型必选默认值简介
workflowstring工作流合约地址
taskIndexstring | number任务的索引,为注册在该工作流中的索引,不是注册在协议中的索引。
contentobject提交的任务的工作内容,需要根据任务模板中 describe 解析的 Schema 来获取表单内容格式,规范可参考 Describe

Response

该方法返回一个 Promise<TransactionResponse> 对象。

reject

提交工作流下指定任务内容。

函数签名:

reject(workflow: string, taskIndex: number, content: { [key: string]: any }): Promise<TransactionResponse>

如何调用

const pob = new POB(provider)
pob.task.reject("workflow contract address", "task index", { content: "content"});

Request

参数名称类型必选默认值简介
workflowstring工作流合约地址
taskIndexstring | number任务的索引,为注册在该工作流中的索引,不是注册在协议中的索引。
contentobject提交的任务的工作内容,需要根据任务模板中 describe 解析的 Schema 来获取表单内容格式,规范可参考 Describe

Response

该方法返回一个 Promise<TransactionResponse> 对象。

getTask

查询工作流下指定任务的信息。

函数签名:

getTask(workflow: string, taskIndex: number | string): Promise<Response<Task>>

如何调用

const pob = new POB(provider)
pob.task.getTask("workflow contract address", "task index");

Request

参数名称类型必选默认值简介
workflowstring工作流合约地址
taskIndexstring | number任务的索引,为注册在该工作流中的索引,不是注册在协议中的索引。

Response

该方法返回一个 Promise<Response<Task>> 对象。

Task

参数名称类型简介
onlyOneWinnernumber
taskAddressboolean
reviewerstring该任务的审批人
taskIndexnumber该任务的索引
totalRewardsTokenValue该任务的总奖励
remainingRewardsTokenValue该任务剩余的奖励
deadlinenumber该任务的截止日期,如果为 0,则表示永久任务
feeAmountTokenValue该任务的收费价格
describestring该任务的描述信息,通常存储在 ipfs
namestring该任务的名称,来源于 describe。
descriptionstring该任务的简介,来源于 describe。
extInfoobject该任务的拓展信息,来源于 describe, 除 name、description 以外的信息。
transactionHashstring交易 hash
logIndexstring日志索引
blockHashstring区块 hash
transactionIndexstring交易索引
createdAtnumber创建时间戳,格林威治时间
updatedAtnumber更新时间戳,格林威治时间

getTasks

查询工作流下所有的任务信息。

函数签名:

getTasks(workflow: string): Promise<Response<Task[]>>

如何调用

const pob = new POB(provider)
pob.task.getTasks("workflow contract address");

Request

参数名称类型必选默认值简介
workflowstring工作流合约地址

Response

该方法返回一个 Promise<Response<Task[]>> 对象。参考 #Task

getTaskStatus

查询工作流下任务的状态

函数签名:

getTaskStatus(workflow: string, taskIndex: string | number, taker: string): Promise<Response<TaskStatus>>

如何调用

const pob = new POB(provider)
pob.task.getTaskStatus("workflow contract address", "task index", "taker address");

Request

参数名称类型必选默认值简介
workflowstring工作流合约地址
taskIndexnumber任务的索引
takerstringtaker 钱包地址

Response

该方法返回一个 Promise<Response<TaskStatus>> 对象。

TaskStatus

参数名称类型简介
workflownumber工作流的合约地址
takerboolean该任务的承接人
reviewerstring该任务的审批人
taskIndexnumber该任务的索引
statusTokenValue该任务的总奖励
contentstring任务的提交、拒绝、审批等内容,根据不同角色内容不同
transactionHashstring交易 hash
logIndexstring日志索引
blockHashstring区块 hash
transactionIndexstring交易索引
createdAtnumber创建时间戳,格林威治时间
updatedAtnumber更新时间戳,格林威治时间