@avaprotocol/sdk-js 1.4.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/auth.d.ts +2 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +10 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +19 -0
- package/dist/grpc_codegen/custom_types.d.ts +45 -0
- package/dist/grpc_codegen/custom_types.d.ts.map +1 -0
- package/dist/grpc_codegen/custom_types.js +179 -0
- package/dist/index.d.ts +148 -2798
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8901 -5466
- package/dist/index.mjs +8897 -5459
- package/dist/models/edge.d.ts +12 -0
- package/dist/models/edge.d.ts.map +1 -0
- package/dist/models/edge.js +19 -0
- package/dist/models/execution.d.ts +32 -0
- package/dist/models/execution.d.ts.map +1 -0
- package/dist/models/execution.js +65 -0
- package/dist/models/node/branch.d.ts +14 -0
- package/dist/models/node/branch.d.ts.map +1 -0
- package/dist/models/node/branch.js +39 -0
- package/dist/models/node/contractRead.d.ts +14 -0
- package/dist/models/node/contractRead.d.ts.map +1 -0
- package/dist/models/node/contractRead.js +33 -0
- package/dist/models/node/contractWrite.d.ts +14 -0
- package/dist/models/node/contractWrite.d.ts.map +1 -0
- package/dist/models/node/contractWrite.js +31 -0
- package/dist/models/node/customCode.d.ts +18 -0
- package/dist/models/node/customCode.d.ts.map +1 -0
- package/dist/models/node/customCode.js +36 -0
- package/dist/models/node/ethTransfer.d.ts +14 -0
- package/dist/models/node/ethTransfer.d.ts.map +1 -0
- package/dist/models/node/ethTransfer.js +30 -0
- package/dist/models/node/factory.d.ts +21 -0
- package/dist/models/node/factory.d.ts.map +1 -0
- package/dist/models/node/factory.js +70 -0
- package/dist/models/node/filter.d.ts +14 -0
- package/dist/models/node/filter.d.ts.map +1 -0
- package/dist/models/node/filter.js +32 -0
- package/dist/models/node/graphqlQuery.d.ts +14 -0
- package/dist/models/node/graphqlQuery.d.ts.map +1 -0
- package/dist/models/node/graphqlQuery.js +43 -0
- package/dist/models/node/interface.d.ts +18 -0
- package/dist/models/node/interface.d.ts.map +1 -0
- package/dist/models/node/interface.js +37 -0
- package/dist/models/node/loop.d.ts +13 -0
- package/dist/models/node/loop.d.ts.map +1 -0
- package/dist/models/node/loop.js +145 -0
- package/dist/models/node/restApi.d.ts +15 -0
- package/dist/models/node/restApi.d.ts.map +1 -0
- package/dist/models/node/restApi.js +40 -0
- package/dist/models/secret.d.ts +16 -0
- package/dist/models/secret.d.ts.map +1 -0
- package/dist/models/secret.js +28 -0
- package/dist/models/step.d.ts +19 -0
- package/dist/models/step.d.ts.map +1 -0
- package/dist/models/step.js +78 -0
- package/dist/models/trigger/block.d.ts +20 -0
- package/dist/models/trigger/block.d.ts.map +1 -0
- package/dist/models/trigger/block.js +49 -0
- package/dist/models/trigger/cron.d.ts +20 -0
- package/dist/models/trigger/cron.d.ts.map +1 -0
- package/dist/models/trigger/cron.js +49 -0
- package/dist/models/trigger/event.d.ts +20 -0
- package/dist/models/trigger/event.d.ts.map +1 -0
- package/dist/models/trigger/event.js +74 -0
- package/dist/models/trigger/factory.d.ts +25 -0
- package/dist/models/trigger/factory.d.ts.map +1 -0
- package/dist/models/trigger/factory.js +54 -0
- package/dist/models/trigger/fixedTime.d.ts +20 -0
- package/dist/models/trigger/fixedTime.d.ts.map +1 -0
- package/dist/models/trigger/fixedTime.js +49 -0
- package/dist/models/trigger/interface.d.ts +25 -0
- package/dist/models/trigger/interface.d.ts.map +1 -0
- package/dist/models/trigger/interface.js +20 -0
- package/dist/models/trigger/manual.d.ts +13 -0
- package/dist/models/trigger/manual.d.ts.map +1 -0
- package/dist/models/trigger/manual.js +27 -0
- package/dist/models/trigger/reason.d.ts +33 -0
- package/dist/models/trigger/reason.d.ts.map +1 -0
- package/dist/models/trigger/reason.js +96 -0
- package/dist/models/workflow.d.ts +54 -0
- package/dist/models/workflow.d.ts.map +1 -0
- package/dist/models/workflow.js +117 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +37 -0
- package/package.json +6 -4
- package/dist/index.d.mts +0 -2937
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as _ from "lodash";
|
|
2
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
3
|
+
import Trigger from "./interface";
|
|
4
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
5
|
+
class EventTrigger extends Trigger {
|
|
6
|
+
constructor(props) {
|
|
7
|
+
super({ ...props, type: TriggerType.Event, data: props.data });
|
|
8
|
+
}
|
|
9
|
+
toRequest() {
|
|
10
|
+
const request = new avs_pb.TaskTrigger();
|
|
11
|
+
request.setName(this.name);
|
|
12
|
+
request.setId(this.id);
|
|
13
|
+
if (!this.data) {
|
|
14
|
+
throw new Error(`Trigger data is missing for ${this.type}`);
|
|
15
|
+
}
|
|
16
|
+
const trigger = new avs_pb.EventTrigger();
|
|
17
|
+
const dataConfig = this.data;
|
|
18
|
+
const config = new avs_pb.EventTrigger.Config();
|
|
19
|
+
const expression = dataConfig.expression;
|
|
20
|
+
const matcherList = dataConfig.matcherList;
|
|
21
|
+
if (_.isUndefined(expression) || _.isNull(expression)) {
|
|
22
|
+
throw new Error(`Expression is undefined for ${this.type}`);
|
|
23
|
+
}
|
|
24
|
+
config.setExpression(expression);
|
|
25
|
+
if (matcherList && matcherList.length > 0) {
|
|
26
|
+
const matchers = matcherList.map((element) => {
|
|
27
|
+
const m = new avs_pb.EventTrigger.Matcher();
|
|
28
|
+
m.setType(element.type);
|
|
29
|
+
m.setValueList(element.valueList || []);
|
|
30
|
+
return m;
|
|
31
|
+
});
|
|
32
|
+
config.setMatcherList(matchers);
|
|
33
|
+
}
|
|
34
|
+
trigger.setConfig(config);
|
|
35
|
+
request.setEvent(trigger);
|
|
36
|
+
return request;
|
|
37
|
+
}
|
|
38
|
+
static fromResponse(raw) {
|
|
39
|
+
// Convert the raw object to TriggerProps, which should keep name and id
|
|
40
|
+
const obj = raw.toObject();
|
|
41
|
+
let data = { expression: "", matcherList: [] };
|
|
42
|
+
if (raw.getEvent() && raw.getEvent().hasConfig()) {
|
|
43
|
+
const config = raw.getEvent().getConfig();
|
|
44
|
+
if (config) {
|
|
45
|
+
data = {
|
|
46
|
+
expression: config.getExpression(),
|
|
47
|
+
matcherList: []
|
|
48
|
+
};
|
|
49
|
+
if (config.getMatcherList && config.getMatcherList().length > 0) {
|
|
50
|
+
data.matcherList = config.getMatcherList().map((item) => {
|
|
51
|
+
return {
|
|
52
|
+
type: item.getType(),
|
|
53
|
+
valueList: item.getValueList() || [],
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return new EventTrigger({
|
|
60
|
+
...obj,
|
|
61
|
+
type: TriggerType.Event,
|
|
62
|
+
data: data,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Convert raw data from runNodeWithInputs response to EventOutput format
|
|
67
|
+
* @param rawData - The raw data from the gRPC response
|
|
68
|
+
* @returns {EventTriggerOutput | undefined} - The converted data
|
|
69
|
+
*/
|
|
70
|
+
getOutput() {
|
|
71
|
+
return this.output;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export default EventTrigger;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import BlockTrigger, { BlockTriggerProps } from "./block";
|
|
3
|
+
import CronTrigger, { CronTriggerProps } from "./cron";
|
|
4
|
+
import EventTrigger, { EventTriggerProps } from "./event";
|
|
5
|
+
import FixedTimeTrigger, { FixedTimeTriggerProps } from "./fixedTime";
|
|
6
|
+
import ManualTrigger, { ManualTriggerProps } from "./manual";
|
|
7
|
+
import Trigger, { TriggerProps } from "./interface";
|
|
8
|
+
declare class TriggerFactory {
|
|
9
|
+
/**
|
|
10
|
+
* Static factory method to create Trigger instances
|
|
11
|
+
* @param props
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
static create(props: TriggerProps): Trigger;
|
|
15
|
+
/**
|
|
16
|
+
* Create an instance of Trigger from AVS getWorkflow or getWorkflows response
|
|
17
|
+
* @param trigger
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
static fromResponse(raw: avs_pb.TaskTrigger): Trigger;
|
|
21
|
+
}
|
|
22
|
+
export default TriggerFactory;
|
|
23
|
+
export { Trigger, BlockTrigger, CronTrigger, EventTrigger, FixedTimeTrigger, ManualTrigger, };
|
|
24
|
+
export type { TriggerProps, BlockTriggerProps, CronTriggerProps, EventTriggerProps, FixedTimeTriggerProps, ManualTriggerProps, };
|
|
25
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/models/trigger/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,WAAW,EAAE,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,YAAY,EAAE,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,gBAAgB,EAAE,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,aAAa,EAAE,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGpD,cAAM,cAAc;IAClB;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAkB3C;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,OAAO;CAgBtD;AAED,eAAe,cAAc,CAAC;AAG9B,OAAO,EACL,OAAO,EACP,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,CAAC;AAGF,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import BlockTrigger from "./block";
|
|
2
|
+
import CronTrigger from "./cron";
|
|
3
|
+
import EventTrigger from "./event";
|
|
4
|
+
import FixedTimeTrigger from "./fixedTime";
|
|
5
|
+
import ManualTrigger from "./manual";
|
|
6
|
+
import Trigger from "./interface";
|
|
7
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
8
|
+
class TriggerFactory {
|
|
9
|
+
/**
|
|
10
|
+
* Static factory method to create Trigger instances
|
|
11
|
+
* @param props
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
static create(props) {
|
|
15
|
+
switch (props.type) {
|
|
16
|
+
case TriggerType.Block:
|
|
17
|
+
return new BlockTrigger(props);
|
|
18
|
+
case TriggerType.Cron:
|
|
19
|
+
return new CronTrigger(props);
|
|
20
|
+
case TriggerType.Event:
|
|
21
|
+
return new EventTrigger(props);
|
|
22
|
+
case TriggerType.FixedTime:
|
|
23
|
+
return new FixedTimeTrigger(props);
|
|
24
|
+
case TriggerType.Manual:
|
|
25
|
+
return new ManualTrigger(props);
|
|
26
|
+
}
|
|
27
|
+
// Add more conditions for other subclasses
|
|
28
|
+
throw new Error("Unsupported trigger type");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create an instance of Trigger from AVS getWorkflow or getWorkflows response
|
|
32
|
+
* @param trigger
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
static fromResponse(raw) {
|
|
36
|
+
switch (true) {
|
|
37
|
+
case !!raw.getFixedTime():
|
|
38
|
+
return FixedTimeTrigger.fromResponse(raw);
|
|
39
|
+
case !!raw.getCron():
|
|
40
|
+
return CronTrigger.fromResponse(raw);
|
|
41
|
+
case !!raw.getBlock():
|
|
42
|
+
return BlockTrigger.fromResponse(raw);
|
|
43
|
+
case !!raw.getEvent():
|
|
44
|
+
return EventTrigger.fromResponse(raw);
|
|
45
|
+
case !!raw.getManual():
|
|
46
|
+
return ManualTrigger.fromResponse(raw);
|
|
47
|
+
default:
|
|
48
|
+
throw new Error("Unknown trigger type");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export default TriggerFactory;
|
|
53
|
+
// Trigger object definitions
|
|
54
|
+
export { Trigger, BlockTrigger, CronTrigger, EventTrigger, FixedTimeTrigger, ManualTrigger, };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import Trigger, { TriggerProps } from "./interface";
|
|
3
|
+
export type FixedTimeTriggerDataType = avs_pb.FixedTimeTrigger.Config.AsObject;
|
|
4
|
+
export type FixedTimeTriggerProps = TriggerProps & {
|
|
5
|
+
data: FixedTimeTriggerDataType;
|
|
6
|
+
};
|
|
7
|
+
export type FixedTimeTriggerOutput = avs_pb.FixedTimeTrigger.Output.AsObject;
|
|
8
|
+
declare class FixedTimeTrigger extends Trigger {
|
|
9
|
+
constructor(props: FixedTimeTriggerProps);
|
|
10
|
+
toRequest(): avs_pb.TaskTrigger;
|
|
11
|
+
static fromResponse(raw: avs_pb.TaskTrigger): FixedTimeTrigger;
|
|
12
|
+
/**
|
|
13
|
+
* Convert raw data from runNodeWithInputs response to FixedTimeOutput format
|
|
14
|
+
* @param rawData - The raw data from the gRPC response
|
|
15
|
+
* @returns {FixedTimeTriggerOutput | undefined} - The converted data
|
|
16
|
+
*/
|
|
17
|
+
getOutput(): FixedTimeTriggerOutput | undefined;
|
|
18
|
+
}
|
|
19
|
+
export default FixedTimeTrigger;
|
|
20
|
+
//# sourceMappingURL=fixedTime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixedTime.d.ts","sourceRoot":"","sources":["../../../src/models/trigger/fixedTime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,OAAO,EAAE,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAInE,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/E,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IACjD,IAAI,EAAE,wBAAwB,CAAC;CAChC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC;AAE7E,cAAM,gBAAiB,SAAQ,OAAO;gBACxB,KAAK,EAAE,qBAAqB;IAIxC,SAAS,IAAI,MAAM,CAAC,WAAW;IAmB/B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,gBAAgB;IAuB9D;;;;OAIG;IACH,SAAS,IAAI,sBAAsB,GAAG,SAAS;CAGhD;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import Trigger from "./interface";
|
|
3
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
4
|
+
class FixedTimeTrigger extends Trigger {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super({ ...props, type: TriggerType.FixedTime, data: props.data });
|
|
7
|
+
}
|
|
8
|
+
toRequest() {
|
|
9
|
+
const request = new avs_pb.TaskTrigger();
|
|
10
|
+
request.setName(this.name);
|
|
11
|
+
request.setId(this.id);
|
|
12
|
+
if (!this.data) {
|
|
13
|
+
throw new Error(`Trigger data is missing for ${this.type}`);
|
|
14
|
+
}
|
|
15
|
+
const trigger = new avs_pb.FixedTimeTrigger();
|
|
16
|
+
const config = new avs_pb.FixedTimeTrigger.Config();
|
|
17
|
+
config.setEpochsList(this.data.epochsList || []);
|
|
18
|
+
trigger.setConfig(config);
|
|
19
|
+
request.setFixedTime(trigger);
|
|
20
|
+
return request;
|
|
21
|
+
}
|
|
22
|
+
static fromResponse(raw) {
|
|
23
|
+
// Convert the raw object to TriggerProps, which should keep name and id
|
|
24
|
+
const obj = raw.toObject();
|
|
25
|
+
let data = { epochsList: [] };
|
|
26
|
+
if (raw.getFixedTime() && raw.getFixedTime().hasConfig()) {
|
|
27
|
+
const config = raw.getFixedTime().getConfig();
|
|
28
|
+
if (config) {
|
|
29
|
+
data = {
|
|
30
|
+
epochsList: config.getEpochsList() || []
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return new FixedTimeTrigger({
|
|
35
|
+
...obj,
|
|
36
|
+
type: TriggerType.FixedTime,
|
|
37
|
+
data: data,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Convert raw data from runNodeWithInputs response to FixedTimeOutput format
|
|
42
|
+
* @param rawData - The raw data from the gRPC response
|
|
43
|
+
* @returns {FixedTimeTriggerOutput | undefined} - The converted data
|
|
44
|
+
*/
|
|
45
|
+
getOutput() {
|
|
46
|
+
return this.output;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export default FixedTimeTrigger;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
3
|
+
export type TriggerData = avs_pb.FixedTimeTrigger.AsObject | avs_pb.CronTrigger.AsObject | avs_pb.BlockTrigger.AsObject | avs_pb.EventTrigger.AsObject | Record<string, any> | null;
|
|
4
|
+
export type TriggerOutput = avs_pb.FixedTimeTrigger.Output.AsObject | avs_pb.CronTrigger.Output.AsObject | avs_pb.BlockTrigger.Output.AsObject | avs_pb.EventTrigger.Output.AsObject | null;
|
|
5
|
+
export type TriggerProps = Omit<avs_pb.TaskTrigger.AsObject, "manual" | "fixedTime" | "cron" | "block" | "event"> & {
|
|
6
|
+
type: TriggerType;
|
|
7
|
+
data: TriggerData;
|
|
8
|
+
output?: TriggerOutput;
|
|
9
|
+
};
|
|
10
|
+
declare class Trigger implements TriggerProps {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
type: TriggerType;
|
|
14
|
+
data: TriggerData;
|
|
15
|
+
output?: TriggerOutput;
|
|
16
|
+
/**
|
|
17
|
+
* Create an instance of Trigger from user inputs
|
|
18
|
+
* @param props
|
|
19
|
+
*/
|
|
20
|
+
constructor(props: TriggerProps);
|
|
21
|
+
toRequest(): avs_pb.TaskTrigger;
|
|
22
|
+
getOutput(): TriggerOutput | undefined;
|
|
23
|
+
}
|
|
24
|
+
export default Trigger;
|
|
25
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/models/trigger/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,MAAM,WAAW,GACnB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,GAChC,MAAM,CAAC,WAAW,CAAC,QAAQ,GAC3B,MAAM,CAAC,YAAY,CAAC,QAAQ,GAC5B,MAAM,CAAC,YAAY,CAAC,QAAQ,GAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,IAAI,CAAC;AAET,MAAM,MAAM,aAAa,GACrB,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,GACvC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,GAClC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,GACnC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,GACnC,IAAI,CAAC;AAET,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,MAAM,CAAC,WAAW,CAAC,QAAQ,EAC3B,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CACpD,GAAG;IACF,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,cAAM,OAAQ,YAAW,YAAY;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;;OAGG;gBACS,KAAK,EAAE,YAAY;IAQ/B,SAAS,IAAI,MAAM,CAAC,WAAW;IAI/B,SAAS,IAAI,aAAa,GAAG,SAAS;CAGvC;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class Trigger {
|
|
2
|
+
/**
|
|
3
|
+
* Create an instance of Trigger from user inputs
|
|
4
|
+
* @param props
|
|
5
|
+
*/
|
|
6
|
+
constructor(props) {
|
|
7
|
+
this.id = props.id;
|
|
8
|
+
this.name = props.name;
|
|
9
|
+
this.type = props.type;
|
|
10
|
+
this.data = props.data;
|
|
11
|
+
this.output = props.output;
|
|
12
|
+
}
|
|
13
|
+
toRequest() {
|
|
14
|
+
throw new Error("Method not implemented.");
|
|
15
|
+
}
|
|
16
|
+
getOutput() {
|
|
17
|
+
return this.output;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export default Trigger;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import Trigger, { TriggerProps } from "./interface";
|
|
3
|
+
export type ManualTriggerProps = TriggerProps & {
|
|
4
|
+
data?: Record<string, any> | null;
|
|
5
|
+
};
|
|
6
|
+
declare class ManualTrigger extends Trigger {
|
|
7
|
+
constructor(props: ManualTriggerProps);
|
|
8
|
+
toRequest(): avs_pb.TaskTrigger;
|
|
9
|
+
static fromResponse(raw: avs_pb.TaskTrigger): ManualTrigger;
|
|
10
|
+
getInputVariables(): Record<string, any> | null;
|
|
11
|
+
}
|
|
12
|
+
export default ManualTrigger;
|
|
13
|
+
//# sourceMappingURL=manual.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manual.d.ts","sourceRoot":"","sources":["../../../src/models/trigger/manual.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;CAClC,CAAC;AAEF,cAAM,aAAc,SAAQ,OAAO;gBACrB,KAAK,EAAE,kBAAkB;IAIrC,SAAS,IAAI,MAAM,CAAC,WAAW;IAU/B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,aAAa;IAU3D,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAGhD;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import Trigger from "./interface";
|
|
3
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
4
|
+
class ManualTrigger extends Trigger {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super({ ...props, type: TriggerType.Manual, data: props.data || null });
|
|
7
|
+
}
|
|
8
|
+
toRequest() {
|
|
9
|
+
const trigger = new avs_pb.TaskTrigger();
|
|
10
|
+
trigger.setId(this.id);
|
|
11
|
+
trigger.setName(this.name);
|
|
12
|
+
trigger.setManual(true);
|
|
13
|
+
return trigger;
|
|
14
|
+
}
|
|
15
|
+
static fromResponse(raw) {
|
|
16
|
+
const obj = raw.toObject();
|
|
17
|
+
return new ManualTrigger({
|
|
18
|
+
...obj,
|
|
19
|
+
type: TriggerType.Manual,
|
|
20
|
+
data: null, // Manual triggers don't have data in the protobuf response
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
getInputVariables() {
|
|
24
|
+
return this.data;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export default ManualTrigger;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
3
|
+
export type TriggerReasonProps = {
|
|
4
|
+
type: TriggerType.FixedTime;
|
|
5
|
+
epoch: number;
|
|
6
|
+
} | {
|
|
7
|
+
type: TriggerType.Cron;
|
|
8
|
+
epoch: number;
|
|
9
|
+
} | {
|
|
10
|
+
type: TriggerType.Block;
|
|
11
|
+
blockNumber: number;
|
|
12
|
+
} | {
|
|
13
|
+
type: TriggerType.Event;
|
|
14
|
+
blockNumber: number;
|
|
15
|
+
logIndex: number;
|
|
16
|
+
txHash: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: TriggerType.Manual;
|
|
19
|
+
} | {
|
|
20
|
+
type: TriggerType.Unset;
|
|
21
|
+
};
|
|
22
|
+
declare class TriggerReason {
|
|
23
|
+
type: TriggerType;
|
|
24
|
+
blockNumber?: number;
|
|
25
|
+
epoch?: number;
|
|
26
|
+
logIndex?: number;
|
|
27
|
+
txHash?: string;
|
|
28
|
+
constructor(props: TriggerReasonProps);
|
|
29
|
+
static fromResponse(data: avs_pb.TriggerReason | undefined): TriggerReason | undefined;
|
|
30
|
+
toRequest(): avs_pb.TriggerReason;
|
|
31
|
+
}
|
|
32
|
+
export default TriggerReason;
|
|
33
|
+
//# sourceMappingURL=reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reason.d.ts","sourceRoot":"","sources":["../../../src/models/trigger/reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAChD;IACE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAA;CAAE,CAAC;AAoBhC,cAAM,aAAa;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,KAAK,EAAE,kBAAkB;IAyBrC,MAAM,CAAC,YAAY,CACjB,IAAI,EAAE,MAAM,CAAC,aAAa,GAAG,SAAS,GACrC,aAAa,GAAG,SAAS;IAc5B,SAAS,IAAI,MAAM,CAAC,aAAa;CA8ClC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import { TriggerType } from "@avaprotocol/types";
|
|
3
|
+
// Convert the number values of gRPC TriggerType to string values of TriggerType
|
|
4
|
+
const convertTriggerType = (grpcType) => {
|
|
5
|
+
const conversionMap = {
|
|
6
|
+
[avs_pb.TriggerReason.TriggerType.FIXEDTIME]: TriggerType.FixedTime,
|
|
7
|
+
[avs_pb.TriggerReason.TriggerType.CRON]: TriggerType.Cron,
|
|
8
|
+
[avs_pb.TriggerReason.TriggerType.BLOCK]: TriggerType.Block,
|
|
9
|
+
[avs_pb.TriggerReason.TriggerType.EVENT]: TriggerType.Event,
|
|
10
|
+
[avs_pb.TriggerReason.TriggerType.MANUAL]: TriggerType.Manual,
|
|
11
|
+
[avs_pb.TriggerReason.TriggerType.UNSET]: TriggerType.Unset,
|
|
12
|
+
};
|
|
13
|
+
return conversionMap[grpcType];
|
|
14
|
+
};
|
|
15
|
+
class TriggerReason {
|
|
16
|
+
constructor(props) {
|
|
17
|
+
this.type = props.type;
|
|
18
|
+
// Configure reason based on trigger type
|
|
19
|
+
switch (props.type) {
|
|
20
|
+
case TriggerType.FixedTime:
|
|
21
|
+
case TriggerType.Cron:
|
|
22
|
+
this.epoch = props.epoch;
|
|
23
|
+
break;
|
|
24
|
+
case TriggerType.Block:
|
|
25
|
+
this.blockNumber = props.blockNumber;
|
|
26
|
+
break;
|
|
27
|
+
case TriggerType.Event:
|
|
28
|
+
this.blockNumber = props.blockNumber;
|
|
29
|
+
this.logIndex = props.logIndex;
|
|
30
|
+
this.txHash = props.txHash;
|
|
31
|
+
break;
|
|
32
|
+
case TriggerType.Manual:
|
|
33
|
+
case TriggerType.Unset:
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
throw new Error("Unsupported trigger type");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
static fromResponse(data) {
|
|
40
|
+
if (!data) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
return new TriggerReason({
|
|
44
|
+
type: convertTriggerType(data.getType()),
|
|
45
|
+
blockNumber: data.getBlockNumber(),
|
|
46
|
+
epoch: data.getEpoch(),
|
|
47
|
+
logIndex: data.getLogIndex(),
|
|
48
|
+
txHash: data.getTxHash(),
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
toRequest() {
|
|
52
|
+
const request = new avs_pb.TriggerReason();
|
|
53
|
+
switch (this.type) {
|
|
54
|
+
case TriggerType.FixedTime:
|
|
55
|
+
request.setType(avs_pb.TriggerReason.TriggerType.FIXEDTIME);
|
|
56
|
+
if (this.epoch) {
|
|
57
|
+
request.setEpoch(this.epoch);
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
case TriggerType.Cron:
|
|
61
|
+
request.setType(avs_pb.TriggerReason.TriggerType.CRON);
|
|
62
|
+
if (this.epoch) {
|
|
63
|
+
request.setEpoch(this.epoch);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
case TriggerType.Block:
|
|
67
|
+
request.setType(avs_pb.TriggerReason.TriggerType.BLOCK);
|
|
68
|
+
if (this.blockNumber) {
|
|
69
|
+
request.setBlockNumber(this.blockNumber);
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
case TriggerType.Event:
|
|
73
|
+
request.setType(avs_pb.TriggerReason.TriggerType.EVENT);
|
|
74
|
+
if (this.blockNumber) {
|
|
75
|
+
request.setBlockNumber(this.blockNumber);
|
|
76
|
+
}
|
|
77
|
+
if (this.logIndex) {
|
|
78
|
+
request.setLogIndex(this.logIndex);
|
|
79
|
+
}
|
|
80
|
+
if (this.txHash) {
|
|
81
|
+
request.setTxHash(this.txHash);
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
84
|
+
case TriggerType.Manual:
|
|
85
|
+
request.setType(avs_pb.TriggerReason.TriggerType.MANUAL);
|
|
86
|
+
break;
|
|
87
|
+
case TriggerType.Unset:
|
|
88
|
+
request.setType(avs_pb.TriggerReason.TriggerType.UNSET);
|
|
89
|
+
break;
|
|
90
|
+
default:
|
|
91
|
+
throw new Error("Unsupported trigger type");
|
|
92
|
+
}
|
|
93
|
+
return request;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export default TriggerReason;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
2
|
+
import Node from "./node/interface";
|
|
3
|
+
import Edge from "./edge";
|
|
4
|
+
import Trigger from "./trigger/interface";
|
|
5
|
+
export declare const DefaultExpiredAt = -1;
|
|
6
|
+
import { WorkflowStatus } from "@avaprotocol/types";
|
|
7
|
+
export declare function convertStatusToString(status: avs_pb.TaskStatus): WorkflowStatus;
|
|
8
|
+
export type WorkflowProps = Omit<avs_pb.Task.AsObject, "id" | "owner" | "completedAt" | "status" | "name" | "trigger" | "nodesList" | "edgesList" | "lastRanAt" | "executionCount"> & {
|
|
9
|
+
id?: string;
|
|
10
|
+
owner?: string;
|
|
11
|
+
completedAt?: number;
|
|
12
|
+
status?: WorkflowStatus;
|
|
13
|
+
name?: string;
|
|
14
|
+
trigger: Trigger;
|
|
15
|
+
nodes: Node[];
|
|
16
|
+
edges: Edge[];
|
|
17
|
+
lastRanAt?: number;
|
|
18
|
+
executionCount?: number;
|
|
19
|
+
};
|
|
20
|
+
declare class Workflow implements WorkflowProps {
|
|
21
|
+
smartWalletAddress: string;
|
|
22
|
+
trigger: Trigger;
|
|
23
|
+
nodes: Node[];
|
|
24
|
+
edges: Edge[];
|
|
25
|
+
startAt: number;
|
|
26
|
+
expiredAt: number;
|
|
27
|
+
maxExecution: number;
|
|
28
|
+
id?: string;
|
|
29
|
+
owner?: string;
|
|
30
|
+
name?: string;
|
|
31
|
+
completedAt?: number;
|
|
32
|
+
status?: WorkflowStatus;
|
|
33
|
+
lastRanAt?: number;
|
|
34
|
+
executionCount?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Create an instance of Workflow from user inputs
|
|
37
|
+
* @param props
|
|
38
|
+
*/
|
|
39
|
+
constructor(props: WorkflowProps);
|
|
40
|
+
/**
|
|
41
|
+
* Create an instance of Workflow from AVS getWorkflow response
|
|
42
|
+
* @param res
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
static fromResponse(obj: avs_pb.Task): Workflow;
|
|
46
|
+
/**
|
|
47
|
+
* Create an instance of Workflow with only selected fields
|
|
48
|
+
* @param obj
|
|
49
|
+
*/
|
|
50
|
+
static fromListResponse(obj: avs_pb.Task): Workflow;
|
|
51
|
+
toRequest(): avs_pb.CreateTaskReq;
|
|
52
|
+
}
|
|
53
|
+
export default Workflow;
|
|
54
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/models/workflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAG1C,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,UAAU,GACxB,cAAc,CAUhB;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,EAClB,IAAI,GACJ,OAAO,GACP,aAAa,GACb,QAAQ,GACR,MAAM,GACN,SAAS,GACT,WAAW,GACX,WAAW,GACX,WAAW,GACX,gBAAgB,CACnB,GAAG;IACF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,cAAM,QAAS,YAAW,aAAa;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAGrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;gBACS,KAAK,EAAE,aAAa;IAuBhC;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,QAAQ;IAkC/C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,QAAQ;IAyBnD,SAAS,IAAI,MAAM,CAAC,aAAa;CAsBlC;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import * as avs_pb from "@/grpc_codegen/avs_pb";
|
|
3
|
+
import Edge from "./edge";
|
|
4
|
+
import TriggerFactory from "./trigger/factory";
|
|
5
|
+
import NodeFactory from "./node/factory";
|
|
6
|
+
export const DefaultExpiredAt = -1; // TODO: explain the meaning of -1
|
|
7
|
+
import { WorkflowStatus } from "@avaprotocol/types";
|
|
8
|
+
// Function to convert TaskStatus to string
|
|
9
|
+
export function convertStatusToString(status) {
|
|
10
|
+
const conversionMap = {
|
|
11
|
+
[avs_pb.TaskStatus.ACTIVE]: WorkflowStatus.Active,
|
|
12
|
+
[avs_pb.TaskStatus.COMPLETED]: WorkflowStatus.Completed,
|
|
13
|
+
[avs_pb.TaskStatus.FAILED]: WorkflowStatus.Failed,
|
|
14
|
+
[avs_pb.TaskStatus.CANCELED]: WorkflowStatus.Canceled,
|
|
15
|
+
[avs_pb.TaskStatus.EXECUTING]: WorkflowStatus.Executing,
|
|
16
|
+
};
|
|
17
|
+
return conversionMap[status];
|
|
18
|
+
}
|
|
19
|
+
class Workflow {
|
|
20
|
+
/**
|
|
21
|
+
* Create an instance of Workflow from user inputs
|
|
22
|
+
* @param props
|
|
23
|
+
*/
|
|
24
|
+
constructor(props) {
|
|
25
|
+
if (!props.trigger) {
|
|
26
|
+
throw new Error("Trigger is undefined in new Workflow()");
|
|
27
|
+
}
|
|
28
|
+
this.smartWalletAddress = props.smartWalletAddress;
|
|
29
|
+
this.trigger = props.trigger;
|
|
30
|
+
this.nodes = props.nodes;
|
|
31
|
+
this.edges = props.edges;
|
|
32
|
+
this.startAt = props.startAt;
|
|
33
|
+
this.expiredAt = props.expiredAt;
|
|
34
|
+
this.maxExecution = props.maxExecution;
|
|
35
|
+
this.executionCount = props.executionCount;
|
|
36
|
+
// Optional fields
|
|
37
|
+
this.id = props.id;
|
|
38
|
+
this.owner = props.owner;
|
|
39
|
+
this.name = props.name;
|
|
40
|
+
this.status = props.status;
|
|
41
|
+
this.completedAt = props.completedAt;
|
|
42
|
+
this.lastRanAt = props.lastRanAt;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create an instance of Workflow from AVS getWorkflow response
|
|
46
|
+
* @param res
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
static fromResponse(obj) {
|
|
50
|
+
const trigger = TriggerFactory.fromResponse(obj.getTrigger());
|
|
51
|
+
if (!trigger) {
|
|
52
|
+
throw new Error("Trigger is undefined in fromResponse()");
|
|
53
|
+
}
|
|
54
|
+
const nodes = _.map(obj.getNodesList(), (node) => NodeFactory.fromResponse(node));
|
|
55
|
+
const edges = _.map(obj.getEdgesList(), (edge) => Edge.fromResponse(edge));
|
|
56
|
+
const workflow = new Workflow({
|
|
57
|
+
id: obj.getId(),
|
|
58
|
+
owner: obj.getOwner(),
|
|
59
|
+
smartWalletAddress: obj.getSmartWalletAddress(),
|
|
60
|
+
trigger,
|
|
61
|
+
nodes,
|
|
62
|
+
edges,
|
|
63
|
+
startAt: obj.getStartAt(),
|
|
64
|
+
expiredAt: obj.getExpiredAt(),
|
|
65
|
+
maxExecution: obj.getMaxExecution(),
|
|
66
|
+
executionCount: obj.getExecutionCount(),
|
|
67
|
+
name: obj.getName(),
|
|
68
|
+
status: convertStatusToString(obj.getStatus()),
|
|
69
|
+
completedAt: obj.getCompletedAt(),
|
|
70
|
+
lastRanAt: obj.getLastRanAt(),
|
|
71
|
+
});
|
|
72
|
+
return workflow;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create an instance of Workflow with only selected fields
|
|
76
|
+
* @param obj
|
|
77
|
+
*/
|
|
78
|
+
static fromListResponse(obj) {
|
|
79
|
+
const trigger = TriggerFactory.fromResponse(obj.getTrigger());
|
|
80
|
+
if (!trigger) {
|
|
81
|
+
throw new Error("Trigger is undefined in fromListResponse()");
|
|
82
|
+
}
|
|
83
|
+
return new Workflow({
|
|
84
|
+
id: obj.getId(),
|
|
85
|
+
owner: obj.getOwner(),
|
|
86
|
+
smartWalletAddress: obj.getSmartWalletAddress(),
|
|
87
|
+
trigger: trigger,
|
|
88
|
+
startAt: obj.getStartAt(),
|
|
89
|
+
expiredAt: obj.getExpiredAt(),
|
|
90
|
+
maxExecution: obj.getMaxExecution(),
|
|
91
|
+
executionCount: obj.getExecutionCount(),
|
|
92
|
+
nodes: _.map(obj.getNodesList(), (node) => NodeFactory.fromResponse(node)),
|
|
93
|
+
edges: _.map(obj.getEdgesList(), (edge) => Edge.fromResponse(edge)),
|
|
94
|
+
completedAt: obj.getCompletedAt(),
|
|
95
|
+
status: convertStatusToString(obj.getStatus()),
|
|
96
|
+
name: obj.getName(),
|
|
97
|
+
lastRanAt: obj.getLastRanAt(),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
toRequest() {
|
|
101
|
+
const request = new avs_pb.CreateTaskReq();
|
|
102
|
+
// TODO: add client side validation for each field
|
|
103
|
+
request.setSmartWalletAddress(this.smartWalletAddress);
|
|
104
|
+
request.setTrigger(this.trigger.toRequest());
|
|
105
|
+
_.map(this.nodes, (node) => request.addNodes(node.toRequest()));
|
|
106
|
+
_.map(this.edges, (edge) => request.addEdges(edge.toRequest()));
|
|
107
|
+
request.setStartAt(this.startAt);
|
|
108
|
+
request.setExpiredAt(this.expiredAt);
|
|
109
|
+
request.setMaxExecution(this.maxExecution);
|
|
110
|
+
// Optional fields
|
|
111
|
+
if (this.name) {
|
|
112
|
+
request.setName(this.name);
|
|
113
|
+
}
|
|
114
|
+
return request;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export default Workflow;
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAGnF,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,GAAG,CAiCnE"}
|