otomato-sdk 1.4.8 → 1.5.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.
@@ -12,7 +12,7 @@ import { ACTIONS } from '../constants/Blocks.js';
12
12
  import { typeIsNumber } from '../utils/typeValidator.js';
13
13
  export class Action extends Node {
14
14
  constructor(action) {
15
- super(Object.assign(Object.assign({}, action), { class: 'action' }));
15
+ super(Object.assign(Object.assign({}, action), { class: 'action', parentInfo: findActionByBlockId(action.blockId).parentInfo }));
16
16
  }
17
17
  getStaticParameters() {
18
18
  return null;
@@ -1,3 +1,13 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { apiServices } from '../services/ApiService.js';
1
11
  let edgeCounter = 0;
2
12
  const generatedEdgeIds = new Set();
3
13
  export class Edge {
@@ -25,7 +35,6 @@ export class Edge {
25
35
  static fromJSON(json, nodes) {
26
36
  const source = nodes.find(n => n.getRef() === json.source);
27
37
  const target = nodes.find(n => n.getRef() === json.target);
28
- console.log(json);
29
38
  if (!source || !target)
30
39
  throw new Error("Edge refer to non existing node");
31
40
  return new Edge({
@@ -34,4 +43,27 @@ export class Edge {
34
43
  target
35
44
  });
36
45
  }
46
+ delete() {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ var _a;
49
+ if (!this.id) {
50
+ throw new Error('Cannot delete an edge without an ID.');
51
+ }
52
+ try {
53
+ console.log('trying...');
54
+ console.log(this.id);
55
+ const response = yield apiServices.delete(`/edges/${this.id}`);
56
+ console.log(response.status);
57
+ if (response.status === 204) {
58
+ return { success: true };
59
+ }
60
+ else {
61
+ return { success: false, error: ((_a = response.data) === null || _a === void 0 ? void 0 : _a.error) || 'Unknown error' };
62
+ }
63
+ }
64
+ catch (error) {
65
+ return { success: false, error: error.message || 'Unknown error' };
66
+ }
67
+ });
68
+ }
37
69
  }
@@ -8,6 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  import { validateType } from '../utils/typeValidator.js';
11
+ import { apiServices } from '../services/ApiService.js';
11
12
  let nodeCounter = 0;
12
13
  const generatedRefs = new Set();
13
14
  export class Node {
@@ -137,6 +138,47 @@ export class Node {
137
138
  }
138
139
  return JSON.parse(JSON.stringify(json, serializeBigInt));
139
140
  }
141
+ delete() {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ var _a;
144
+ if (!this.id) {
145
+ throw new Error('Cannot delete a node without an ID.');
146
+ }
147
+ try {
148
+ console.log(this.id);
149
+ const response = yield apiServices.delete(`/nodes/${this.id}`);
150
+ if (response.status === 204) {
151
+ return { success: true };
152
+ }
153
+ else {
154
+ return { success: false, error: ((_a = response.data) === null || _a === void 0 ? void 0 : _a.error) || 'Unknown error' };
155
+ }
156
+ }
157
+ catch (error) {
158
+ return { success: false, error: error.message || 'Unknown error' };
159
+ }
160
+ });
161
+ }
162
+ update() {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ var _a;
165
+ if (!this.id) {
166
+ throw new Error('Cannot update a node without an ID.');
167
+ }
168
+ try {
169
+ const response = yield apiServices.patch(`/nodes/${this.id}`, this.toJSON());
170
+ if (response.status === 200) {
171
+ return { success: true };
172
+ }
173
+ else {
174
+ return { success: false, error: ((_a = response.data) === null || _a === void 0 ? void 0 : _a.error) || 'Unknown error' };
175
+ }
176
+ }
177
+ catch (error) {
178
+ return { success: false, error: error.message || 'Unknown error' };
179
+ }
180
+ });
181
+ }
140
182
  getSimplifiedKey(key) {
141
183
  return key.replace(/[.\[\]]/g, '_');
142
184
  }
@@ -12,7 +12,7 @@ import { TRIGGERS } from '../constants/Blocks.js';
12
12
  import { typeIsNumber } from '../utils/typeValidator.js';
13
13
  export class Trigger extends Node {
14
14
  constructor(trigger) {
15
- super(Object.assign(Object.assign({}, trigger), { class: 'trigger' }));
15
+ super(Object.assign(Object.assign({}, trigger), { class: 'trigger', parentInfo: findTriggerByBlockId(trigger.blockId).parentInfo }));
16
16
  this.type = trigger.type;
17
17
  }
18
18
  notAPollingTrigger() {
@@ -69,6 +69,14 @@ export class Workflow {
69
69
  node.setId(nodeResponse.id);
70
70
  }
71
71
  });
72
+ // Assign IDs to the edges based on the source and target nodes
73
+ response.data.edges.forEach((edgeResponse) => {
74
+ const edge = this.edges.find(e => e.source.getRef() === edgeResponse.source &&
75
+ e.target.getRef() === edgeResponse.target);
76
+ if (edge) {
77
+ edge.id = edgeResponse.id;
78
+ }
79
+ });
72
80
  return { success: true };
73
81
  }
74
82
  else {
@@ -93,6 +101,14 @@ export class Workflow {
93
101
  node.setId(nodeResponse.id);
94
102
  }
95
103
  });
104
+ // Assign IDs to the edges based on the source and target nodes
105
+ response.data.edges.forEach((edgeResponse) => {
106
+ const edge = this.edges.find(e => e.source.getRef() === edgeResponse.source &&
107
+ e.target.getRef() === edgeResponse.target);
108
+ if (edge) {
109
+ edge.id = edgeResponse.id;
110
+ }
111
+ });
96
112
  return { success: true };
97
113
  }
98
114
  else {
@@ -106,13 +122,26 @@ export class Workflow {
106
122
  }
107
123
  load(workflowId) {
108
124
  return __awaiter(this, void 0, void 0, function* () {
109
- const response = yield apiServices.get(`/workflows/${workflowId}`);
110
- this.id = response.id;
111
- this.name = response.name;
112
- this.state = response.state;
113
- this.nodes = yield Promise.all(response.nodes.map((nodeData) => __awaiter(this, void 0, void 0, function* () { return yield Node.fromJSON(nodeData); })));
114
- this.edges = response.edges.map((edgeData) => Edge.fromJSON(edgeData, this.nodes));
115
- return this;
125
+ try {
126
+ const response = yield apiServices.get(`/workflows/${workflowId}`);
127
+ this.id = response.id;
128
+ this.name = response.name;
129
+ this.state = response.state;
130
+ this.nodes = yield Promise.all(response.nodes.map((nodeData) => __awaiter(this, void 0, void 0, function* () { return yield Node.fromJSON(nodeData); })));
131
+ this.edges = response.edges.map((edgeData) => Edge.fromJSON(edgeData, this.nodes));
132
+ return this;
133
+ }
134
+ catch (error) {
135
+ throw new Error(`Failed to load workflow: ${error.message}`);
136
+ }
137
+ });
138
+ }
139
+ reload() {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ if (!this.id) {
142
+ throw new Error('Cannot reload a workflow without an ID.');
143
+ }
144
+ return this.load(this.id);
116
145
  });
117
146
  }
118
147
  run() {
@@ -136,4 +165,30 @@ export class Workflow {
136
165
  }
137
166
  });
138
167
  }
168
+ delete() {
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ var _a;
171
+ if (!this.id) {
172
+ throw new Error('Cannot delete a workflow without an ID.');
173
+ }
174
+ try {
175
+ const response = yield apiServices.delete(`/workflows/${this.id}`);
176
+ if (response.status === 204) {
177
+ // Optionally, you can clean up the instance's properties here
178
+ this.id = null;
179
+ this.name = '';
180
+ this.nodes = [];
181
+ this.edges = [];
182
+ this.state = 'inactive';
183
+ return { success: true };
184
+ }
185
+ else {
186
+ return { success: false, error: ((_a = response.data) === null || _a === void 0 ? void 0 : _a.error) || 'Unknown error' };
187
+ }
188
+ }
189
+ catch (error) {
190
+ return { success: false, error: error.message || 'Unknown error' };
191
+ }
192
+ });
193
+ }
139
194
  }
@@ -44,6 +44,12 @@ class ApiServices {
44
44
  return response.data;
45
45
  });
46
46
  }
47
+ delete(url) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const headers = this.auth ? { 'Authorization': this.auth } : {};
50
+ return yield axiosInstance.delete(url, { headers });
51
+ });
52
+ }
47
53
  generateLoginPayload(address, chainId) {
48
54
  return __awaiter(this, void 0, void 0, function* () {
49
55
  const headers = { 'Content-Type': 'application/json' };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -14,4 +14,8 @@ export declare class Edge {
14
14
  static fromJSON(json: {
15
15
  [key: string]: any;
16
16
  }, nodes: Node[]): Edge;
17
+ delete(): Promise<{
18
+ success: boolean;
19
+ error?: string;
20
+ }>;
17
21
  }
@@ -57,6 +57,14 @@ export declare abstract class Node {
57
57
  toJSON(): {
58
58
  [key: string]: any;
59
59
  };
60
+ delete(): Promise<{
61
+ success: boolean;
62
+ error?: string;
63
+ }>;
64
+ update(): Promise<{
65
+ success: boolean;
66
+ error?: string;
67
+ }>;
60
68
  private getSimplifiedKey;
61
69
  static fromJSON(json: {
62
70
  [key: string]: any;
@@ -35,8 +35,13 @@ export declare class Workflow {
35
35
  error?: string;
36
36
  }>;
37
37
  load(workflowId: string): Promise<Workflow>;
38
+ reload(): Promise<Workflow>;
38
39
  run(): Promise<{
39
40
  success: boolean;
40
41
  error?: string;
41
42
  }>;
43
+ delete(): Promise<{
44
+ success: boolean;
45
+ error?: string;
46
+ }>;
42
47
  }
@@ -4,6 +4,7 @@ declare class ApiServices {
4
4
  post(url: string, data: any): Promise<import("axios").AxiosResponse<any, any>>;
5
5
  patch(url: string, data: any): Promise<import("axios").AxiosResponse<any, any>>;
6
6
  get(url: string): Promise<any>;
7
+ delete(url: string): Promise<import("axios").AxiosResponse<any, any>>;
7
8
  generateLoginPayload(address: string, chainId: number): Promise<any>;
8
9
  getToken(loginPayload: any, signature: string): Promise<{
9
10
  token: any;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "otomato-sdk",
3
- "version": "1.4.8",
3
+ "version": "1.5.0",
4
4
  "description": "An SDK for building and managing automations on Otomato",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/types/src/index.d.ts",
7
7
  "type": "module",
8
- "prepublishOnly": "rm -rf dist/examples dist/test",
8
+ "prepublishOnly": "npm run build; npm run test",
9
9
  "scripts": {
10
10
  "build": "npx tsc",
11
11
  "test": "mocha --config .mocharc.json"
@@ -20,7 +20,8 @@
20
20
  "ethereum"
21
21
  ],
22
22
  "files": [
23
- "dist/",
23
+ "dist/src",
24
+ "dist/types",
24
25
  "README.md",
25
26
  "LICENSE"
26
27
  ],
@@ -1,21 +0,0 @@
1
- import { ACTIONS, getTokenFromSymbol, CHAINS, Action } from '../src/index.js';
2
- const createAction = () => {
3
- // Create an ERC20 transfer action
4
- const transferAction = new Action(ACTIONS.TOKENS.ERC20.TRANSFER);
5
- transferAction.setChainId(CHAINS.ETHEREUM);
6
- transferAction.setParams("value", 1000);
7
- transferAction.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
8
- transferAction.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
9
- console.log(JSON.stringify(transferAction.toJSON()));
10
- // Create an SMS notification action
11
- const smsAction = new Action(ACTIONS.NOTIFICATIONS.DISCORD.SEND_MESSAGE);
12
- smsAction.setParams("webhook", "https://url");
13
- smsAction.setParams("message", "This is a test message");
14
- console.log(smsAction.toJSON());
15
- // Create a Slack notification action
16
- const slackAction = new Action(ACTIONS.NOTIFICATIONS.SLACK.SEND_MESSAGE);
17
- slackAction.setParams("webhook", "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX");
18
- slackAction.setParams("message", "This is a test message");
19
- console.log(slackAction.toJSON());
20
- };
21
- createAction();
@@ -1,36 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { ACTIONS, Action, TRIGGERS, Trigger, Automation, CHAINS, getToken, Edge } from '../src/index.js';
11
- const main = () => __awaiter(void 0, void 0, void 0, function* () {
12
- const usdcTransferTrigger = new Trigger({
13
- id: TRIGGERS.TOKENS.ERC20.TRANSFER.id,
14
- name: TRIGGERS.TOKENS.ERC20.TRANSFER.name,
15
- description: TRIGGERS.TOKENS.ERC20.TRANSFER.description,
16
- type: TRIGGERS.TOKENS.ERC20.TRANSFER.type,
17
- parameters: TRIGGERS.TOKENS.ERC20.TRANSFER.parameters,
18
- ref: 'n-1',
19
- });
20
- usdcTransferTrigger.setChainId(CHAINS.ETHEREUM);
21
- usdcTransferTrigger.setContractAddress(getToken(CHAINS.ETHEREUM, 'USDC').contractAddress);
22
- usdcTransferTrigger.setPosition(0, 0);
23
- const slackAction = new Action(ACTIONS.NOTIFICATIONS.SLACK.SEND_MESSAGE);
24
- slackAction.setParams("webhook", "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX");
25
- slackAction.setParams("message", "USDC has been transferred!");
26
- slackAction.setPosition(0, -10);
27
- const automation = new Automation("USDC Transfer Notification", [usdcTransferTrigger, slackAction]);
28
- const edge = new Edge({
29
- source: usdcTransferTrigger,
30
- target: slackAction,
31
- });
32
- automation.addEdge(edge);
33
- console.log(JSON.stringify(automation.toJSON(), null, 2));
34
- //await automation.save();
35
- });
36
- main();
@@ -1,131 +0,0 @@
1
- import { TRIGGERS, getTokenFromSymbol, TOKENS, CHAINS, Trigger } from '../src/index.js';
2
- const generateDefaultTriggers = () => {
3
- const triggersList = [];
4
- const createDefaultTrigger = (trigger) => {
5
- const triggerInstance = new Trigger(trigger);
6
- // Set common parameters if they exist
7
- if (trigger.parameters.some((p) => p.key === "chainId")) {
8
- triggerInstance.setChainId(CHAINS.ETHEREUM);
9
- }
10
- if (trigger.parameters.some((p) => p.key === "contractAddress")) {
11
- triggerInstance.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
12
- }
13
- if (trigger.parameters.some((p) => p.key === "condition")) {
14
- triggerInstance.setCondition('>');
15
- }
16
- if (trigger.parameters.some((p) => p.key === "comparisonValue")) {
17
- triggerInstance.setComparisonValue(1000);
18
- }
19
- if (trigger.parameters.some((p) => p.key === "abiParams.account")) {
20
- triggerInstance.setParams('account', '0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6');
21
- }
22
- return triggerInstance.toJSON();
23
- };
24
- // Explicitly create each trigger
25
- triggersList.push(createDefaultTrigger(TRIGGERS.TOKENS.ERC20.TRANSFER));
26
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.SWAP));
27
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.LIQUIDITY_REMOVED));
28
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.MARKET_CREATION));
29
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.INTEREST_RATE_UPDATE));
30
- triggersList.push(createDefaultTrigger(TRIGGERS.LENDING.ASTARIA.LEND_RECALLED));
31
- triggersList.push(createDefaultTrigger(TRIGGERS.DEXES.ODOS.SWAP));
32
- triggersList.push(createDefaultTrigger(TRIGGERS.SOCIALS.MODE_NAME_SERVICE.NAME_REGISTERED));
33
- return triggersList;
34
- };
35
- function generateTriggersForAllTokens(chain) {
36
- if (!(chain in TOKENS)) {
37
- throw new Error(`Unsupported chain: ${chain}`);
38
- }
39
- const tokens = TOKENS[chain];
40
- const triggersList = [];
41
- tokens.forEach(token => {
42
- // Generate transfer trigger
43
- const transferTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.TRANSFER);
44
- transferTrigger.setChainId(chain);
45
- // transferTrigger.setParams("value", 1000);
46
- // transferTrigger.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
47
- transferTrigger.setContractAddress(token.contractAddress);
48
- triggersList.push(transferTrigger);
49
- // Generate balance trigger
50
- const balanceTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.BALANCE);
51
- balanceTrigger.setChainId(chain);
52
- balanceTrigger.setParams("account", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
53
- balanceTrigger.setContractAddress(token.contractAddress);
54
- balanceTrigger.setCondition(">");
55
- balanceTrigger.setComparisonValue(10);
56
- triggersList.push(balanceTrigger);
57
- });
58
- return triggersList.map(t => t.toJSON());
59
- }
60
- const generateSpecificTriggers = () => {
61
- // Create individual triggers
62
- const transferTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.TRANSFER);
63
- transferTrigger.setChainId(CHAINS.ETHEREUM);
64
- transferTrigger.setParams("value", 1000);
65
- transferTrigger.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
66
- transferTrigger.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
67
- const balanceTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.BALANCE);
68
- balanceTrigger.setChainId(CHAINS.ETHEREUM);
69
- balanceTrigger.setParams("account", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
70
- balanceTrigger.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
71
- balanceTrigger.setCondition(">");
72
- balanceTrigger.setComparisonValue(45000);
73
- const spliceFiSwapTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.SWAP);
74
- spliceFiSwapTrigger.setParams("caller", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
75
- spliceFiSwapTrigger.setParams("market", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
76
- spliceFiSwapTrigger.setParams("receiver", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
77
- spliceFiSwapTrigger.setParams("netPtToAccount", 1000);
78
- spliceFiSwapTrigger.setParams("netSyToAccount", 2000);
79
- const liquidityRemovedTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.LIQUIDITY_REMOVED);
80
- liquidityRemovedTrigger.setParams("caller", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
81
- liquidityRemovedTrigger.setParams("market", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
82
- liquidityRemovedTrigger.setParams("receiver", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
83
- liquidityRemovedTrigger.setParams("netLpToRemove", 1000);
84
- liquidityRemovedTrigger.setParams("netPtOut", 500);
85
- liquidityRemovedTrigger.setParams("netSyOut", 1500);
86
- const marketCreationTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.MARKET_CREATION);
87
- marketCreationTrigger.setParams("market", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
88
- marketCreationTrigger.setParams("PT", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
89
- marketCreationTrigger.setParams("scalarRoot", 1234);
90
- marketCreationTrigger.setParams("initialAnchor", 5678);
91
- marketCreationTrigger.setParams("lnFeeRateRoot", 91011);
92
- const interestRateUpdateTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.INTEREST_RATE_UPDATE);
93
- interestRateUpdateTrigger.setParams("timestamp", 1627848271);
94
- interestRateUpdateTrigger.setParams("lastLnImpliedRate", 123456);
95
- interestRateUpdateTrigger.setContractAddress("0xDE95511418EBD8Bd36294B11C86314DdFA50e212");
96
- const lendRecalledTrigger = new Trigger(TRIGGERS.LENDING.ASTARIA.LEND_RECALLED);
97
- lendRecalledTrigger.setParams("loanId", 123456);
98
- lendRecalledTrigger.setParams("recaller", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
99
- lendRecalledTrigger.setParams("end", 1627848271);
100
- const odosSwapTrigger = new Trigger(TRIGGERS.DEXES.ODOS.SWAP);
101
- odosSwapTrigger.setChainId(CHAINS.ETHEREUM);
102
- odosSwapTrigger.setParams("sender", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
103
- odosSwapTrigger.setParams("inputAmount", 1000);
104
- odosSwapTrigger.setParams("inputToken", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
105
- odosSwapTrigger.setParams("amountOut", 500);
106
- odosSwapTrigger.setParams("outputToken", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
107
- odosSwapTrigger.setParams("exchangeRate", 1.23);
108
- const nameRegisteredTrigger = new Trigger(TRIGGERS.SOCIALS.MODE_NAME_SERVICE.NAME_REGISTERED);
109
- nameRegisteredTrigger.setParams("id", 123456);
110
- nameRegisteredTrigger.setParams("owner", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
111
- nameRegisteredTrigger.setParams("expires", 1627848271);
112
- return [
113
- transferTrigger.toJSON(),
114
- balanceTrigger.toJSON(),
115
- spliceFiSwapTrigger.toJSON(),
116
- liquidityRemovedTrigger.toJSON(),
117
- marketCreationTrigger.toJSON(),
118
- interestRateUpdateTrigger.toJSON(),
119
- lendRecalledTrigger.toJSON(),
120
- odosSwapTrigger.toJSON(),
121
- nameRegisteredTrigger.toJSON(),
122
- ];
123
- };
124
- // Collect all triggers in a list
125
- const triggersList = [
126
- ...generateTriggersForAllTokens(CHAINS.ETHEREUM),
127
- ...generateTriggersForAllTokens(CHAINS.MODE),
128
- ...generateDefaultTriggers(),
129
- ...generateSpecificTriggers()
130
- ];
131
- console.log(triggersList);
@@ -1,21 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { TRIGGERS, CHAINS, Trigger, getTokenFromSymbol, convertToTokenUnits } from '../src/index.js';
11
- const main = () => __awaiter(void 0, void 0, void 0, function* () {
12
- const transferTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.TRANSFER);
13
- const contractAddr = getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress;
14
- console.log(contractAddr);
15
- transferTrigger.setChainId(CHAINS.ETHEREUM);
16
- transferTrigger.setParams("value", yield convertToTokenUnits(1, CHAINS.ETHEREUM, contractAddr));
17
- transferTrigger.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
18
- transferTrigger.setContractAddress(contractAddr);
19
- console.log(JSON.stringify(transferTrigger.toJSON()));
20
- });
21
- main();
@@ -1,54 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { ACTIONS, Action, TRIGGERS, Trigger, Workflow, CHAINS, getTokenFromSymbol, Edge, apiServices } from '../src/index.js';
11
- const main = () => __awaiter(void 0, void 0, void 0, function* () {
12
- apiServices.setAuth("eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIweDdjRUI4ZDgxNDdBYWE5ZEI4MUFjQkRGRTVjMzA1MERGQ2ZGMTg1MzciLCJzdWIiOiIweDg3RkU4YjRmMkZlODM3MGY2Y0M5YTk2MzQ0MmYwN0IwMmY0OTA5QTciLCJhdWQiOiJvdG9tYXRvLXRlc3QubmV0bGlmeS5hcHAiLCJleHAiOjE3MjMzODMxOTksIm5iZiI6MTcyMDc4OTM5OSwiaWF0IjoxNzIwNzkxMTk5LCJqdGkiOiIweDY4ZDkxOWEyMGZiYjIyNDUwZDZmOTFjMzM2ZTBmYjBjMmYyYTc3MmU3Zjg4NWU1ZjRmNzg1NTM2ZGIyYTY5YTAiLCJjdHgiOnt9fQ.MHgyOTM1NTM3MWYwOWM1YzllNWE3YjI4MjVkZTNjMDljZTkwMTQ3OTQwZmU1ZWRlMjM5YTk0MmFjYTQ5YTcwZWI0MGJlNmJiZDk2MDA4ZTIxMzJmNGM3ZTVlZGIzZDZiZjYyMDE4Mzc1MzUwMTRmNTc0ODM0ZDk4YWU3NDQwNDQzOTFi");
13
- const trigger = new Trigger(TRIGGERS.PRICE_ACTION.ON_CHAIN_PRICE_MOVEMENT.PRICE_MOVEMENT_AGAINST_CURRENCY);
14
- trigger.setChainId(CHAINS.MODE);
15
- trigger.setComparisonValue(3000);
16
- trigger.setCondition('gte');
17
- trigger.setParams('currency', 'USD');
18
- trigger.setContractAddress(getTokenFromSymbol(CHAINS.MODE, 'WETH').contractAddress);
19
- trigger.setPosition(0, 0);
20
- const slackAction = new Action(ACTIONS.NOTIFICATIONS.SLACK.SEND_MESSAGE);
21
- slackAction.setParams("webhook", "https://hooks.slack.com/services/REPLACE_WITH_YOUR_DATA");
22
- slackAction.setParams("message", "Notification from the SDK - testing the state");
23
- slackAction.setPosition(0, -10);
24
- /*const transferAction = new Action(ACTIONS.TOKENS.ERC20.TRANSFER);
25
- transferAction.setChainId(CHAINS.ETHEREUM);
26
- transferAction.setParams("value", 1000);
27
- transferAction.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
28
- transferAction.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);*/
29
- const workflow = new Workflow("test from SDK", [trigger, slackAction]);
30
- const edge = new Edge({
31
- source: trigger,
32
- target: slackAction,
33
- });
34
- workflow.addEdge(edge);
35
- console.log(JSON.stringify(workflow.toJSON()));
36
- const creationResult = yield workflow.create();
37
- console.log(workflow.getState());
38
- if (!creationResult.success) {
39
- throw new Error("An error occurred when publishing the workflow");
40
- }
41
- console.log(workflow.id);
42
- const runResult = yield workflow.run();
43
- console.log(workflow.getState());
44
- if (!runResult.success) {
45
- throw new Error("An error occurred when running the workflow");
46
- }
47
- console.log(`Workflow ${workflow.id} is running`);
48
- console.log(workflow.getState());
49
- workflow.setName("ABC");
50
- const patchResult = yield workflow.update();
51
- console.log(patchResult);
52
- console.log(workflow.getState());
53
- });
54
- main();
@@ -1,19 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { Workflow, apiServices } from '../src/index.js';
11
- const main = () => __awaiter(void 0, void 0, void 0, function* () {
12
- apiServices.setAuth("eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIweDdjRUI4ZDgxNDdBYWE5ZEI4MUFjQkRGRTVjMzA1MERGQ2ZGMTg1MzciLCJzdWIiOiIweDg3RkU4YjRmMkZlODM3MGY2Y0M5YTk2MzQ0MmYwN0IwMmY0OTA5QTciLCJhdWQiOiJvdG9tYXRvLXRlc3QubmV0bGlmeS5hcHAiLCJleHAiOjE3MjMzODMxOTksIm5iZiI6MTcyMDc4OTM5OSwiaWF0IjoxNzIwNzkxMTk5LCJqdGkiOiIweDY4ZDkxOWEyMGZiYjIyNDUwZDZmOTFjMzM2ZTBmYjBjMmYyYTc3MmU3Zjg4NWU1ZjRmNzg1NTM2ZGIyYTY5YTAiLCJjdHgiOnt9fQ.MHgyOTM1NTM3MWYwOWM1YzllNWE3YjI4MjVkZTNjMDljZTkwMTQ3OTQwZmU1ZWRlMjM5YTk0MmFjYTQ5YTcwZWI0MGJlNmJiZDk2MDA4ZTIxMzJmNGM3ZTVlZGIzZDZiZjYyMDE4Mzc1MzUwMTRmNTc0ODM0ZDk4YWU3NDQwNDQzOTFi");
13
- const workflows = yield apiServices.getWorkflowsOfUser();
14
- // console.log(workflows);
15
- const workflow = yield new Workflow().load(workflows[12].id);
16
- // const workflow = await new Workflow().load("815666d5-4232-4728-953a-abde4d85c8fd");
17
- console.log(JSON.stringify(workflow));
18
- });
19
- main();
@@ -1,32 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { CHAINS, apiServices } from '../src/index.js';
11
- const main = () => __awaiter(void 0, void 0, void 0, function* () {
12
- const address = "0x9b1E25bBbee162A26B67B1fb00cf4d67157656F6";
13
- let payload = yield apiServices.generateLoginPayload(address, CHAINS.ETHEREUM);
14
- // we replace the payload to fit the signature, don't do that in your implementation
15
- const signature = '0x92a3b551ff2bc2eb9a3537a0b477af14c33e649c3479c204bb0a4da95bfee89e4ae966e5d555d34c5dfcf3899910c58e936375634f5b0f58978139d25b5b54761b';
16
- payload = {
17
- address: '0x9b1E25bBbee162A26B67B1fb00cf4d67157656F6',
18
- chain_id: '1',
19
- domain: 'otomato-test.netlify.app',
20
- expiration_time: '2024-07-16T16:57:34.363Z',
21
- invalid_before: '2024-07-16T15:57:34.363Z',
22
- issued_at: '2024-07-16T16:27:34.363Z',
23
- nonce: '0x4ed46b76a2ccb458bc84bfc3f8aeb43bbc6a2b2f1ae5ee9f10c13ba6bd05f832',
24
- statement: 'Please ensure that the domain above matches the URL of the current website.',
25
- version: '1'
26
- };
27
- const { token } = yield apiServices.getToken(payload, signature);
28
- const verify = yield apiServices.verifyToken(token);
29
- console.log(token);
30
- console.log(verify);
31
- });
32
- main();