@avaprotocol/sdk-js 2.8.1 → 2.9.0

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.
@@ -0,0 +1,17 @@
1
+ import Node from "./interface";
2
+ import * as avs_pb from "@/grpc_codegen/avs_pb";
3
+ import { BalanceNodeData, BalanceNodeProps } from "@avaprotocol/types";
4
+ declare class BalanceNode extends Node {
5
+ constructor(props: BalanceNodeProps);
6
+ /**
7
+ * Create a protobuf BalanceNode from config data
8
+ * @param configData - The configuration data for the balance node
9
+ * @returns Configured avs_pb.BalanceNode
10
+ */
11
+ static createProtobufNode(configData: BalanceNodeData): avs_pb.BalanceNode;
12
+ static fromResponse(raw: avs_pb.TaskNode): BalanceNode;
13
+ toRequest(): avs_pb.TaskNode;
14
+ static fromOutputData(outputData: avs_pb.RunNodeWithInputsResp): unknown | null;
15
+ }
16
+ export default BalanceNode;
17
+ //# sourceMappingURL=balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/models/node/balance.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAEL,eAAe,EACf,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAK5B,cAAM,WAAY,SAAQ,IAAI;gBAChB,KAAK,EAAE,gBAAgB;IAInC;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAAC,WAAW;IAwB1E,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,WAAW;IAuBtD,SAAS,IAAI,MAAM,CAAC,QAAQ;IAe5B,MAAM,CAAC,cAAc,CACnB,UAAU,EAAE,MAAM,CAAC,qBAAqB,GACvC,OAAO,GAAG,IAAI;CAUlB;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,71 @@
1
+ import Node from "./interface";
2
+ import * as avs_pb from "@/grpc_codegen/avs_pb";
3
+ import { NodeType, } from "@avaprotocol/types";
4
+ import { convertProtobufValueToJs } from "../../utils";
5
+ // Required props for constructor: id, name, type and data
6
+ class BalanceNode extends Node {
7
+ constructor(props) {
8
+ super({ ...props, type: NodeType.Balance, data: props.data });
9
+ }
10
+ /**
11
+ * Create a protobuf BalanceNode from config data
12
+ * @param configData - The configuration data for the balance node
13
+ * @returns Configured avs_pb.BalanceNode
14
+ */
15
+ static createProtobufNode(configData) {
16
+ const node = new avs_pb.BalanceNode();
17
+ const config = new avs_pb.BalanceNode.Config();
18
+ config.setAddress(configData.address);
19
+ config.setChain(configData.chain);
20
+ if (configData.includeSpam !== undefined) {
21
+ config.setIncludeSpam(configData.includeSpam);
22
+ }
23
+ if (configData.includeZeroBalances !== undefined) {
24
+ config.setIncludeZeroBalances(configData.includeZeroBalances);
25
+ }
26
+ if (configData.minUsdValue !== undefined) {
27
+ // Convert dollars to cents for protobuf (validation happens on backend)
28
+ config.setMinUsdValueCents(Math.round(configData.minUsdValue * 100));
29
+ }
30
+ node.setConfig(config);
31
+ return node;
32
+ }
33
+ static fromResponse(raw) {
34
+ // Convert the raw object to BalanceNodeProps, which should keep name and id
35
+ const obj = raw.toObject();
36
+ const balanceNode = raw.getBalance();
37
+ const config = balanceNode.getConfig();
38
+ const protobufData = config.toObject();
39
+ // Convert protobuf data to our custom interface
40
+ const data = {
41
+ address: protobufData.address,
42
+ chain: protobufData.chain,
43
+ includeSpam: protobufData.includeSpam,
44
+ includeZeroBalances: protobufData.includeZeroBalances,
45
+ minUsdValue: protobufData.minUsdValueCents / 100,
46
+ };
47
+ return new BalanceNode({
48
+ ...obj,
49
+ type: NodeType.Balance,
50
+ data: data,
51
+ });
52
+ }
53
+ toRequest() {
54
+ const request = new avs_pb.TaskNode();
55
+ request.setId(this.id);
56
+ request.setName(this.name);
57
+ const node = BalanceNode.createProtobufNode(this.data);
58
+ request.setBalance(node);
59
+ return request;
60
+ }
61
+ static fromOutputData(outputData) {
62
+ const balanceOutput = outputData.getBalance();
63
+ if (!balanceOutput)
64
+ return null;
65
+ // Get the data from the data field (array of token balances)
66
+ const dataValue = balanceOutput.getData();
67
+ const balanceData = dataValue ? convertProtobufValueToJs(dataValue) : [];
68
+ return { data: balanceData };
69
+ }
70
+ }
71
+ export default BalanceNode;
@@ -1,6 +1,6 @@
1
1
  import Node from "./interface";
2
2
  import * as avs_pb from "@/grpc_codegen/avs_pb";
3
- import { CustomCodeLang, CustomCodeNodeProps } from "@avaprotocol/types";
3
+ import { CustomCodeNodeProps, Lang } from "@avaprotocol/types";
4
4
  declare class CustomCodeNode extends Node {
5
5
  constructor(props: CustomCodeNodeProps);
6
6
  /**
@@ -9,7 +9,7 @@ declare class CustomCodeNode extends Node {
9
9
  * @returns Configured avs_pb.CustomCodeNode
10
10
  */
11
11
  static createProtobufNode(configData: {
12
- lang: CustomCodeLang | string | number;
12
+ lang: Lang;
13
13
  source: string;
14
14
  }): avs_pb.CustomCodeNode;
15
15
  static fromResponse(raw: avs_pb.TaskNode): CustomCodeNode;
@@ -1 +1 @@
1
- {"version":3,"file":"customCode.d.ts","sourceRoot":"","sources":["../../../src/models/node/customCode.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAGL,cAAc,EACd,mBAAmB,EAEpB,MAAM,oBAAoB,CAAC;AAS5B,cAAM,cAAe,SAAQ,IAAI;gBACnB,KAAK,EAAE,mBAAmB;IAItC;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE;QACpC,IAAI,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;QACvC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,CAAC,cAAc;IAYzB,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc;IAmBzD,SAAS,IAAI,MAAM,CAAC,QAAQ;IAe5B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,qBAAqB,GAAG,GAAG;CAqBrE;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"customCode.d.ts","sourceRoot":"","sources":["../../../src/models/node/customCode.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAGL,mBAAmB,EAEnB,IAAI,EAEL,MAAM,oBAAoB,CAAC;AAS5B,cAAM,cAAe,SAAQ,IAAI;gBACnB,KAAK,EAAE,mBAAmB;IAKtC;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE;QACpC,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,MAAM,CAAC,cAAc;IAazB,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,cAAc;IA2BzD,SAAS,IAAI,MAAM,CAAC,QAAQ;IAe5B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,qBAAqB,GAAG,GAAG;CAqBrE;AAED,eAAe,cAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import Node from "./interface";
2
2
  import * as avs_pb from "@/grpc_codegen/avs_pb";
3
- import { NodeType, } from "@avaprotocol/types";
3
+ import { NodeType, LangConverter, } from "@avaprotocol/types";
4
4
  import { convertProtobufValueToJs, } from "../../utils";
5
5
  // Required props for constructor: id, name, type and data: { lang: number, source: string }
6
6
  class CustomCodeNode extends Node {
@@ -15,8 +15,9 @@ class CustomCodeNode extends Node {
15
15
  static createProtobufNode(configData) {
16
16
  const node = new avs_pb.CustomCodeNode();
17
17
  const config = new avs_pb.CustomCodeNode.Config();
18
- // Set lang using enum value (cast to protobuf Lang type)
19
- config.setLang(configData.lang);
18
+ // Convert lang to protobuf enum using centralized converter
19
+ const langValue = LangConverter.toProtobuf(configData.lang);
20
+ config.setLang(langValue);
20
21
  config.setSource(configData.source);
21
22
  node.setConfig(config);
22
23
  return node;
@@ -24,11 +25,18 @@ class CustomCodeNode extends Node {
24
25
  static fromResponse(raw) {
25
26
  // Convert the raw object to CustomCodeNodeProps, which should keep name and id
26
27
  const obj = raw.toObject();
27
- // Get the raw protobuf config and convert to our custom interface
28
- const rawConfig = raw.getCustomCode().getConfig().toObject();
28
+ // Get the raw protobuf config
29
+ const customCodeNode = raw.getCustomCode();
30
+ if (!customCodeNode) {
31
+ throw new Error("CustomCode node data is missing");
32
+ }
33
+ const config = customCodeNode.getConfig();
34
+ if (!config) {
35
+ throw new Error("CustomCode config is missing");
36
+ }
29
37
  const convertedConfig = {
30
- lang: rawConfig.lang,
31
- source: rawConfig.source,
38
+ lang: LangConverter.fromProtobuf(config.getLang()),
39
+ source: config.getSource(),
32
40
  };
33
41
  return new CustomCodeNode({
34
42
  ...obj,
@@ -9,7 +9,8 @@ import ETHTransferNode from "./ethTransfer";
9
9
  import BranchNode from "./branch";
10
10
  import FilterNode from "./filter";
11
11
  import LoopNode from "./loop";
12
- import { ContractWriteNodeData, ContractReadNodeData, BranchNodeData, ETHTransferNodeData, GraphQLQueryNodeData, RestAPINodeData, CustomCodeNodeData, FilterNodeData, LoopNodeData, NodeProps, ContractWriteNodeProps, ContractReadNodeProps, BranchNodeProps, ETHTransferNodeProps, GraphQLQueryNodeProps, RestAPINodeProps, CustomCodeNodeProps, FilterNodeProps, LoopNodeProps } from "@avaprotocol/types";
12
+ import BalanceNode from "./balance";
13
+ import { ContractWriteNodeData, ContractReadNodeData, BranchNodeData, ETHTransferNodeData, GraphQLQueryNodeData, RestAPINodeData, CustomCodeNodeData, FilterNodeData, LoopNodeData, BalanceNodeData, NodeProps, ContractWriteNodeProps, ContractReadNodeProps, BranchNodeProps, ETHTransferNodeProps, GraphQLQueryNodeProps, RestAPINodeProps, CustomCodeNodeProps, FilterNodeProps, LoopNodeProps, BalanceNodeProps } from "@avaprotocol/types";
13
14
  declare class NodeFactory {
14
15
  static create(props: NodeProps): Node;
15
16
  static createNodes(props: NodeProps[]): Node[];
@@ -17,7 +18,7 @@ declare class NodeFactory {
17
18
  static fromOutputData(outputData: avs_pb.RunNodeWithInputsResp): any;
18
19
  }
19
20
  export default NodeFactory;
20
- export { Node, ContractWriteNode, ContractReadNode, BranchNode, ETHTransferNode, GraphQLQueryNode, RestAPINode, CustomCodeNode, FilterNode, LoopNode, };
21
- export type { ContractWriteNodeData, ContractReadNodeData, BranchNodeData, ETHTransferNodeData, GraphQLQueryNodeData, RestAPINodeData, CustomCodeNodeData, FilterNodeData, LoopNodeData, };
22
- export type { NodeProps, ContractWriteNodeProps, ContractReadNodeProps, BranchNodeProps, ETHTransferNodeProps, GraphQLQueryNodeProps, RestAPINodeProps, CustomCodeNodeProps, FilterNodeProps, LoopNodeProps, };
21
+ export { Node, ContractWriteNode, ContractReadNode, BranchNode, ETHTransferNode, GraphQLQueryNode, RestAPINode, CustomCodeNode, FilterNode, LoopNode, BalanceNode, };
22
+ export type { ContractWriteNodeData, ContractReadNodeData, BranchNodeData, ETHTransferNodeData, GraphQLQueryNodeData, RestAPINodeData, CustomCodeNodeData, FilterNodeData, LoopNodeData, BalanceNodeData, };
23
+ export type { NodeProps, ContractWriteNodeProps, ContractReadNodeProps, BranchNodeProps, ETHTransferNodeProps, GraphQLQueryNodeProps, RestAPINodeProps, CustomCodeNodeProps, FilterNodeProps, LoopNodeProps, BalanceNodeProps, };
23
24
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/models/node/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,iBAAiB,MAAM,iBAAiB,CAAC;AAChD,OAAO,cAAc,MAAM,cAAc,CAAC;AAC1C,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,WAAW,MAAM,WAAW,CAAC;AACpC,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,eAAe,MAAM,eAAe,CAAC;AAC5C,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,cAAM,WAAW;IACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IA2BrC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;IAI9C,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI;IAyB/C,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,qBAAqB,GAAG,GAAG;CA4BrE;AAED,eAAe,WAAW,CAAC;AAG3B,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACT,CAAC;AAGF,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,CAAC;AAGF,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/models/node/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,iBAAiB,MAAM,iBAAiB,CAAC;AAChD,OAAO,cAAc,MAAM,cAAc,CAAC;AAC1C,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,WAAW,MAAM,WAAW,CAAC;AACpC,OAAO,gBAAgB,MAAM,gBAAgB,CAAC;AAC9C,OAAO,eAAe,MAAM,eAAe,CAAC;AAC5C,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,UAAU,MAAM,UAAU,CAAC;AAClC,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,WAAW,MAAM,WAAW,CAAC;AACpC,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,cAAM,WAAW;IACf,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IA6BrC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;IAI9C,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI;IA2B/C,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,qBAAqB,GAAG,GAAG;CA8BrE;AAED,eAAe,WAAW,CAAC;AAG3B,OAAO,EACL,IAAI,EACJ,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,GACZ,CAAC;AAGF,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,CAAC;AAGF,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,CAAC"}
@@ -10,6 +10,7 @@ import ETHTransferNode from "./ethTransfer";
10
10
  import BranchNode from "./branch";
11
11
  import FilterNode from "./filter";
12
12
  import LoopNode from "./loop";
13
+ import BalanceNode from "./balance";
13
14
  import { NodeType } from "@avaprotocol/types";
14
15
  class NodeFactory {
15
16
  static create(props) {
@@ -32,6 +33,8 @@ class NodeFactory {
32
33
  return new FilterNode(props);
33
34
  case NodeType.Loop:
34
35
  return new LoopNode(props);
36
+ case NodeType.Balance:
37
+ return new BalanceNode(props);
35
38
  case NodeType.Unspecified:
36
39
  throw new Error("Cannot create node with unspecified type");
37
40
  default:
@@ -61,6 +64,8 @@ class NodeFactory {
61
64
  return FilterNode.fromResponse(raw);
62
65
  case !!raw.getLoop():
63
66
  return LoopNode.fromResponse(raw);
67
+ case !!raw.getBalance():
68
+ return BalanceNode.fromResponse(raw);
64
69
  default:
65
70
  throw new Error(`Unsupported node type: ${raw.getName()}`);
66
71
  }
@@ -87,6 +92,8 @@ class NodeFactory {
87
92
  return FilterNode.fromOutputData(outputData);
88
93
  case avs_pb.RunNodeWithInputsResp.OutputDataCase.LOOP:
89
94
  return LoopNode.fromOutputData(outputData);
95
+ case avs_pb.RunNodeWithInputsResp.OutputDataCase.BALANCE:
96
+ return BalanceNode.fromOutputData(outputData);
90
97
  case avs_pb.RunNodeWithInputsResp.OutputDataCase.OUTPUT_DATA_NOT_SET:
91
98
  default:
92
99
  throw new Error(`Unsupported output data case: ${outputData.getOutputDataCase()}`);
@@ -95,4 +102,4 @@ class NodeFactory {
95
102
  }
96
103
  export default NodeFactory;
97
104
  // Node object definitions
98
- export { Node, ContractWriteNode, ContractReadNode, BranchNode, ETHTransferNode, GraphQLQueryNode, RestAPINode, CustomCodeNode, FilterNode, LoopNode, };
105
+ export { Node, ContractWriteNode, ContractReadNode, BranchNode, ETHTransferNode, GraphQLQueryNode, RestAPINode, CustomCodeNode, FilterNode, LoopNode, BalanceNode, };
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/models/node/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAA0C,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK3G,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,GACnC,QAAQ,CAeV;AAGD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EACtB,aAAa,GACb,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,YAAY,CACf,GAAG;IAEF,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAGF,eAAO,MAAM,sBAAsB;6BAER,iBAAiB,KAAG,MAAM;qCAKlB,MAAM,aAAa,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAG,iBAAiB;CAMxG,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,IAAK,YAAW,SAAS;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;gBAGH,KAAK,EAAE,SAAS;IAO5B,SAAS,IAAI,MAAM,CAAC,QAAQ;IAW5B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI;CAQhD"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/models/node/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAA0C,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK3G,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,GACnC,QAAQ,CAgBV;AAGD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EACtB,aAAa,GACb,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,YAAY,CACf,GAAG;IAEF,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAGF,eAAO,MAAM,sBAAsB;6BAER,iBAAiB,KAAG,MAAM;qCAKlB,MAAM,aAAa,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAG,iBAAiB;CAMxG,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,IAAK,YAAW,SAAS;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;gBAGH,KAAK,EAAE,SAAS;IAO5B,SAAS,IAAI,MAAM,CAAC,QAAQ;IAW5B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,IAAI;CAQhD"}
@@ -13,6 +13,7 @@ export function covertNodeTypeToString(status) {
13
13
  [avs_pb.TaskNode.TaskTypeCase.FILTER]: NodeType.Filter,
14
14
  [avs_pb.TaskNode.TaskTypeCase.LOOP]: NodeType.Loop,
15
15
  [avs_pb.TaskNode.TaskTypeCase.CUSTOM_CODE]: NodeType.CustomCode,
16
+ [avs_pb.TaskNode.TaskTypeCase.BALANCE]: NodeType.Balance,
16
17
  [avs_pb.TaskNode.TaskTypeCase.TASK_TYPE_NOT_SET]: NodeType.Unspecified,
17
18
  };
18
19
  return conversionMap[status];
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/models/node/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,IAAI,MAAM,aAAa,CAAC;AAO/B,OAAO,EAGL,aAAa,EAId,MAAM,oBAAoB,CAAC;AAG5B,cAAM,QAAS,SAAQ,IAAI;gBACb,KAAK,EAAE,aAAa;IAIhC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ;IA8BnD,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAsBxC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAe3C,OAAO,CAAC,0BAA0B;IA4BlC,SAAS,IAAI,MAAM,CAAC,QAAQ;IA8B5B,OAAO,CAAC,mBAAmB;IA+G3B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,qBAAqB,GAAG,OAAO;CAkCzE;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/models/node/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,IAAI,MAAM,aAAa,CAAC;AAO/B,OAAO,EAGL,aAAa,EAKd,MAAM,oBAAoB,CAAC;AAG5B,cAAM,QAAS,SAAQ,IAAI;gBACb,KAAK,EAAE,aAAa;IAIhC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ;IA8BnD,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAsBxC,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAe3C,OAAO,CAAC,0BAA0B;IA4BlC,SAAS,IAAI,MAAM,CAAC,QAAQ;IA8B5B,OAAO,CAAC,mBAAmB;IA+G3B,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,qBAAqB,GAAG,OAAO;CAkCzE;AAED,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/models/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAMhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,cAAM,IAAK,YAAW,SAAS;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,KAAK,EAAE,SAAS;IAoB5B;;;OAGG;IACH,MAAM,IAAI,SAAS;IAsBnB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe;IAoC9D,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAiEhC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAkChC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI;CA2HvD;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/models/step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAMhD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,cAAM,IAAK,YAAW,SAAS;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,KAAK,EAAE,SAAS;IAoB5B;;;OAGG;IACH,MAAM,IAAI,SAAS;IAsBnB,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,eAAe;IAoC9D,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqEhC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAmChC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI;CA2HvD;AAED,eAAe,IAAI,CAAC"}
@@ -138,6 +138,10 @@ class Step {
138
138
  return typeof step.getLoop === "function"
139
139
  ? step.getLoop()
140
140
  : step.loop;
141
+ case avs_pb.Execution.Step.OutputDataCase.BALANCE:
142
+ return typeof step.getBalance === "function"
143
+ ? step.getBalance()
144
+ : step.balance;
141
145
  default:
142
146
  return null;
143
147
  }
@@ -176,6 +180,8 @@ class Step {
176
180
  return avs_pb.Execution.Step.OutputDataCase.FILTER;
177
181
  if (stepObj.loop)
178
182
  return avs_pb.Execution.Step.OutputDataCase.LOOP;
183
+ if (stepObj.balance)
184
+ return avs_pb.Execution.Step.OutputDataCase.BALANCE;
179
185
  return avs_pb.Execution.Step.OutputDataCase.OUTPUT_DATA_NOT_SET;
180
186
  }
181
187
  static fromResponse(step) {
@@ -1 +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,MAAM,aAAa,CAAC;AAMlC,OAAO,EAEL,kBAAkB,EAGnB,MAAM,oBAAoB,CAAC;AAE5B,cAAM,aAAc,SAAQ,OAAO;gBACrB,KAAK,EAAE,kBAAkB;IAQrC,SAAS,IAAI,MAAM,CAAC,WAAW;IAgE/B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,aAAa;IA4C3D;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO;CAuBlE;AAED,eAAe,aAAa,CAAC"}
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,MAAM,aAAa,CAAC;AAMlC,OAAO,EAEL,kBAAkB,EAKnB,MAAM,oBAAoB,CAAC;AAE5B,cAAM,aAAc,SAAQ,OAAO;gBACrB,KAAK,EAAE,kBAAkB;IAQrC,SAAS,IAAI,MAAM,CAAC,WAAW;IAuE/B,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,aAAa;IA6C3D;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO;CAuBlE;AAED,eAAe,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as avs_pb from "@/grpc_codegen/avs_pb";
2
2
  import Trigger from "./interface";
3
3
  import { convertInputToProtobuf, extractInputFromProtobuf, convertProtobufValueToJs, } from "../../utils";
4
- import { TriggerType, } from "@avaprotocol/types";
4
+ import { TriggerType, Lang, LangConverter, } from "@avaprotocol/types";
5
5
  class ManualTrigger extends Trigger {
6
6
  constructor(props) {
7
7
  super({
@@ -22,10 +22,11 @@ class ManualTrigger extends Trigger {
22
22
  if (this.data === null || this.data === undefined) {
23
23
  throw new Error("ManualTrigger data is required");
24
24
  }
25
- // Extract data, headers, and pathParams from ManualTriggerDataType
25
+ // Extract data, headers, pathParams, and lang from ManualTriggerDataType
26
26
  let actualData = this.data;
27
27
  let headers = {};
28
28
  let pathParams = {};
29
+ let lang = Lang.JSON; // Default to JSON
29
30
  if (typeof this.data === 'object' && this.data !== null && !Array.isArray(this.data)) {
30
31
  const dataObj = this.data;
31
32
  // If this.data has the ManualTriggerDataType structure
@@ -33,6 +34,7 @@ class ManualTrigger extends Trigger {
33
34
  actualData = dataObj.data;
34
35
  headers = dataObj.headers || {};
35
36
  pathParams = dataObj.pathParams || {};
37
+ lang = dataObj.lang || Lang.JSON;
36
38
  }
37
39
  // Otherwise, use this.data directly as the data content
38
40
  }
@@ -54,6 +56,9 @@ class ManualTrigger extends Trigger {
54
56
  pathParamsMap.set(key, value);
55
57
  });
56
58
  }
59
+ // Set the lang field (required by protobuf)
60
+ const langValue = LangConverter.toProtobuf(lang);
61
+ config.setLang(langValue);
57
62
  manualTrigger.setConfig(config);
58
63
  trigger.setManual(manualTrigger);
59
64
  return trigger;
@@ -61,6 +66,7 @@ class ManualTrigger extends Trigger {
61
66
  static fromResponse(raw) {
62
67
  const obj = raw.toObject();
63
68
  let actualData = null;
69
+ let lang = Lang.JSON; // Default
64
70
  const manualTrigger = raw.getManual();
65
71
  if (manualTrigger) {
66
72
  const config = manualTrigger.getConfig();
@@ -69,12 +75,15 @@ class ManualTrigger extends Trigger {
69
75
  if (config.hasData()) {
70
76
  actualData = extractInputFromProtobuf(config.getData());
71
77
  }
78
+ // Extract lang field
79
+ lang = LangConverter.fromProtobuf(config.getLang());
72
80
  }
73
81
  }
74
- // Create ManualTriggerDataType structure with just the data
82
+ // Create ManualTriggerDataType structure with data and lang
75
83
  // Headers and pathParams are available in baseInput for execution step display
76
84
  const manualTriggerData = {
77
85
  data: actualData,
86
+ lang: lang,
78
87
  };
79
88
  return new ManualTrigger({
80
89
  ...obj,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,aAAa,EAGvB,MAAM,2CAA2C,CAAC;AAGnD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,GAAG,CAiCnE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,CA6BlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAatD;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkB5E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CA0BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,aAAa,GAAG,SAAS,CAK3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC/C,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAiCjC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB7D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,aAAa,EAGvB,MAAM,2CAA2C,CAAC;AAGnD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,GAAG,CAiCnE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,CA6BlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,CAatD;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAkB5E;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CA4BzE;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CASzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC1B,aAAa,GAAG,SAAS,CAK3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC/C,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAiCjC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsB7D"}
package/dist/utils.js CHANGED
@@ -158,6 +158,8 @@ export function convertProtobufNodeTypeToSdk(protobufType) {
158
158
  return NodeType.Filter; // "filter"
159
159
  case "NODE_TYPE_LOOP":
160
160
  return NodeType.Loop; // "loop"
161
+ case "NODE_TYPE_BALANCE":
162
+ return NodeType.Balance; // "balance"
161
163
  case "NODE_TYPE_UNSPECIFIED":
162
164
  return NodeType.Unspecified; // "unspecified"
163
165
  default:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avaprotocol/sdk-js",
3
- "version": "2.8.1",
3
+ "version": "2.9.0",
4
4
  "description": "A JavaScript/TypeScript SDK designed to simplify integration with Ava Protocol's AVS",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,7 +31,7 @@
31
31
  "prepare": "node ../../scripts/prepare-package.js"
32
32
  },
33
33
  "dependencies": {
34
- "@avaprotocol/types": "2.6.1",
34
+ "@avaprotocol/types": "2.7.0",
35
35
  "@grpc/grpc-js": "^1.11.3",
36
36
  "@grpc/proto-loader": "^0.7.13",
37
37
  "dotenv": "^16.4.5",