otomato-sdk 1.4.6 → 1.4.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "otomato-sdk",
3
- "version": "1.4.6",
3
+ "version": "1.4.7",
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",
@@ -18,6 +18,11 @@
18
18
  "evm",
19
19
  "ethereum"
20
20
  ],
21
+ "files": [
22
+ "dist/",
23
+ "README.md",
24
+ "LICENSE"
25
+ ],
21
26
  "author": "otomato",
22
27
  "license": "ISC",
23
28
  "devDependencies": {
package/.mocharc.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "extension": ["ts"],
3
- "spec": ["test/**/*.spec.ts"],
4
- "node-option": [
5
- "experimental-specifier-resolution=node",
6
- "loader=ts-node/esm"
7
- ]
8
- }
@@ -1,28 +0,0 @@
1
- import { ACTIONS, getTokenFromSymbol, CHAINS, Action, isAddress } from '../src/index.js';
2
-
3
- const createAction = () => {
4
- // Create an ERC20 transfer action
5
- const transferAction = new Action(ACTIONS.TOKENS.ERC20.TRANSFER);
6
- transferAction.setChainId(CHAINS.ETHEREUM);
7
- transferAction.setParams("value", 1000);
8
- transferAction.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
9
- transferAction.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
10
-
11
- console.log(JSON.stringify(transferAction.toJSON()));
12
-
13
- // Create an SMS notification action
14
- const smsAction = new Action(ACTIONS.NOTIFICATIONS.DISCORD.SEND_MESSAGE);
15
- smsAction.setParams("webhook", "https://url");
16
- smsAction.setParams("message", "This is a test message");
17
-
18
- console.log(smsAction.toJSON());
19
-
20
- // Create a Slack notification action
21
- const slackAction = new Action(ACTIONS.NOTIFICATIONS.SLACK.SEND_MESSAGE);
22
- slackAction.setParams("webhook", "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX");
23
- slackAction.setParams("message", "This is a test message");
24
-
25
- console.log(slackAction.toJSON());
26
- };
27
-
28
- createAction();
@@ -1,154 +0,0 @@
1
- import { TRIGGERS, getTokenFromSymbol, TOKENS, CHAINS, Trigger } from '../src/index.js';
2
-
3
- const generateDefaultTriggers = (): any[] => {
4
- const triggersList: any[] = [];
5
-
6
- const createDefaultTrigger = (trigger: any) => {
7
- const triggerInstance = new Trigger(trigger);
8
-
9
- // Set common parameters if they exist
10
- if (trigger.parameters.some((p: any) => p.key === "chainId")) {
11
- triggerInstance.setChainId(CHAINS.ETHEREUM);
12
- }
13
- if (trigger.parameters.some((p: any) => p.key === "contractAddress")) {
14
- triggerInstance.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
15
- }
16
- if (trigger.parameters.some((p: any) => p.key === "condition")) {
17
- triggerInstance.setCondition('>');
18
- }
19
- if (trigger.parameters.some((p: any) => p.key === "comparisonValue")) {
20
- triggerInstance.setComparisonValue(1000);
21
- }
22
- if (trigger.parameters.some((p: any) => p.key === "abiParams.account")) {
23
- triggerInstance.setParams('account', '0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6');
24
- }
25
-
26
- return triggerInstance.toJSON();
27
- };
28
-
29
- // Explicitly create each trigger
30
- triggersList.push(createDefaultTrigger(TRIGGERS.TOKENS.ERC20.TRANSFER));
31
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.SWAP));
32
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.LIQUIDITY_REMOVED));
33
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.MARKET_CREATION));
34
- triggersList.push(createDefaultTrigger(TRIGGERS.YIELD.SPLICE_FI.INTEREST_RATE_UPDATE));
35
- triggersList.push(createDefaultTrigger(TRIGGERS.LENDING.ASTARIA.LEND_RECALLED));
36
- triggersList.push(createDefaultTrigger(TRIGGERS.DEXES.ODOS.SWAP));
37
- triggersList.push(createDefaultTrigger(TRIGGERS.SOCIALS.MODE_NAME_SERVICE.NAME_REGISTERED));
38
-
39
- return triggersList;
40
- };
41
-
42
- function generateTriggersForAllTokens(chain: number) {
43
- if (!(chain in TOKENS)) {
44
- throw new Error(`Unsupported chain: ${chain}`);
45
- }
46
-
47
- const tokens = TOKENS[chain];
48
- const triggersList: any[] = [];
49
-
50
- tokens.forEach(token => {
51
- // Generate transfer trigger
52
- const transferTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.TRANSFER);
53
- transferTrigger.setChainId(chain);
54
- // transferTrigger.setParams("value", 1000);
55
- // transferTrigger.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
56
- transferTrigger.setContractAddress(token.contractAddress);
57
- triggersList.push(transferTrigger);
58
-
59
- // Generate balance trigger
60
- const balanceTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.BALANCE);
61
- balanceTrigger.setChainId(chain);
62
- balanceTrigger.setParams("account", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
63
- balanceTrigger.setContractAddress(token.contractAddress);
64
- balanceTrigger.setCondition(">");
65
- balanceTrigger.setComparisonValue(10);
66
- triggersList.push(balanceTrigger);
67
- });
68
-
69
- return triggersList.map(t => t.toJSON());
70
- }
71
-
72
- const generateSpecificTriggers = (): any[] => {
73
- // Create individual triggers
74
- const transferTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.TRANSFER);
75
- transferTrigger.setChainId(CHAINS.ETHEREUM);
76
- transferTrigger.setParams("value", 1000);
77
- transferTrigger.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
78
- transferTrigger.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
79
-
80
- const balanceTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.BALANCE);
81
- balanceTrigger.setChainId(CHAINS.ETHEREUM);
82
- balanceTrigger.setParams("account", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
83
- balanceTrigger.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);
84
- balanceTrigger.setCondition(">");
85
- balanceTrigger.setComparisonValue(45000);
86
-
87
- const spliceFiSwapTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.SWAP);
88
- spliceFiSwapTrigger.setParams("caller", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
89
- spliceFiSwapTrigger.setParams("market", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
90
- spliceFiSwapTrigger.setParams("receiver", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
91
- spliceFiSwapTrigger.setParams("netPtToAccount", 1000);
92
- spliceFiSwapTrigger.setParams("netSyToAccount", 2000);
93
-
94
- const liquidityRemovedTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.LIQUIDITY_REMOVED);
95
- liquidityRemovedTrigger.setParams("caller", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
96
- liquidityRemovedTrigger.setParams("market", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
97
- liquidityRemovedTrigger.setParams("receiver", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
98
- liquidityRemovedTrigger.setParams("netLpToRemove", 1000);
99
- liquidityRemovedTrigger.setParams("netPtOut", 500);
100
- liquidityRemovedTrigger.setParams("netSyOut", 1500);
101
-
102
- const marketCreationTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.MARKET_CREATION);
103
- marketCreationTrigger.setParams("market", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
104
- marketCreationTrigger.setParams("PT", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
105
- marketCreationTrigger.setParams("scalarRoot", 1234);
106
- marketCreationTrigger.setParams("initialAnchor", 5678);
107
- marketCreationTrigger.setParams("lnFeeRateRoot", 91011);
108
-
109
- const interestRateUpdateTrigger = new Trigger(TRIGGERS.YIELD.SPLICE_FI.INTEREST_RATE_UPDATE);
110
- interestRateUpdateTrigger.setParams("timestamp", 1627848271);
111
- interestRateUpdateTrigger.setParams("lastLnImpliedRate", 123456);
112
- interestRateUpdateTrigger.setContractAddress("0xDE95511418EBD8Bd36294B11C86314DdFA50e212");
113
-
114
- const lendRecalledTrigger = new Trigger(TRIGGERS.LENDING.ASTARIA.LEND_RECALLED);
115
- lendRecalledTrigger.setParams("loanId", 123456);
116
- lendRecalledTrigger.setParams("recaller", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
117
- lendRecalledTrigger.setParams("end", 1627848271);
118
-
119
- const odosSwapTrigger = new Trigger(TRIGGERS.DEXES.ODOS.SWAP);
120
- odosSwapTrigger.setChainId(CHAINS.ETHEREUM);
121
- odosSwapTrigger.setParams("sender", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
122
- odosSwapTrigger.setParams("inputAmount", 1000);
123
- odosSwapTrigger.setParams("inputToken", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
124
- odosSwapTrigger.setParams("amountOut", 500);
125
- odosSwapTrigger.setParams("outputToken", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
126
- odosSwapTrigger.setParams("exchangeRate", 1.23);
127
-
128
- const nameRegisteredTrigger = new Trigger(TRIGGERS.SOCIALS.MODE_NAME_SERVICE.NAME_REGISTERED);
129
- nameRegisteredTrigger.setParams("id", 123456);
130
- nameRegisteredTrigger.setParams("owner", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
131
- nameRegisteredTrigger.setParams("expires", 1627848271);
132
-
133
- return [
134
- transferTrigger.toJSON(),
135
- balanceTrigger.toJSON(),
136
- spliceFiSwapTrigger.toJSON(),
137
- liquidityRemovedTrigger.toJSON(),
138
- marketCreationTrigger.toJSON(),
139
- interestRateUpdateTrigger.toJSON(),
140
- lendRecalledTrigger.toJSON(),
141
- odosSwapTrigger.toJSON(),
142
- nameRegisteredTrigger.toJSON(),
143
- ]
144
- };
145
-
146
- // Collect all triggers in a list
147
- const triggersList = [
148
- ...generateTriggersForAllTokens(CHAINS.ETHEREUM),
149
- ...generateTriggersForAllTokens(CHAINS.MODE),
150
- ...generateDefaultTriggers(),
151
- ...generateSpecificTriggers()
152
- ];
153
-
154
- console.log(triggersList);
@@ -1,19 +0,0 @@
1
- import { TRIGGERS, getToken, CHAINS, Trigger, getTokenFromSymbol, convertToTokenUnits } from '../src/index.js';
2
-
3
-
4
- const main = async () => {
5
-
6
- const transferTrigger = new Trigger(TRIGGERS.TOKENS.ERC20.TRANSFER);
7
-
8
- const contractAddr = getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress;
9
- console.log(contractAddr);
10
-
11
- transferTrigger.setChainId(CHAINS.ETHEREUM);
12
- transferTrigger.setParams("value", await convertToTokenUnits(1, CHAINS.ETHEREUM, contractAddr));
13
- transferTrigger.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
14
- transferTrigger.setContractAddress(contractAddr);
15
-
16
- console.log(JSON.stringify(transferTrigger.toJSON()));
17
- }
18
-
19
- main();
@@ -1,62 +0,0 @@
1
- import { ACTIONS, Action, TRIGGERS, Trigger, Workflow, CHAINS, getTokenFromSymbol, Edge, apiServices, convertToTokenUnits } from '../src/index.js';
2
-
3
- const main = async () => {
4
- apiServices.setAuth("eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIweDdjRUI4ZDgxNDdBYWE5ZEI4MUFjQkRGRTVjMzA1MERGQ2ZGMTg1MzciLCJzdWIiOiIweDg3RkU4YjRmMkZlODM3MGY2Y0M5YTk2MzQ0MmYwN0IwMmY0OTA5QTciLCJhdWQiOiJvdG9tYXRvLXRlc3QubmV0bGlmeS5hcHAiLCJleHAiOjE3MjMzODMxOTksIm5iZiI6MTcyMDc4OTM5OSwiaWF0IjoxNzIwNzkxMTk5LCJqdGkiOiIweDY4ZDkxOWEyMGZiYjIyNDUwZDZmOTFjMzM2ZTBmYjBjMmYyYTc3MmU3Zjg4NWU1ZjRmNzg1NTM2ZGIyYTY5YTAiLCJjdHgiOnt9fQ.MHgyOTM1NTM3MWYwOWM1YzllNWE3YjI4MjVkZTNjMDljZTkwMTQ3OTQwZmU1ZWRlMjM5YTk0MmFjYTQ5YTcwZWI0MGJlNmJiZDk2MDA4ZTIxMzJmNGM3ZTVlZGIzZDZiZjYyMDE4Mzc1MzUwMTRmNTc0ODM0ZDk4YWU3NDQwNDQzOTFi");
5
-
6
- const trigger = new Trigger(TRIGGERS.PRICE_ACTION.ON_CHAIN_PRICE_MOVEMENT.PRICE_MOVEMENT_AGAINST_CURRENCY);
7
- trigger.setChainId(CHAINS.MODE);
8
- trigger.setComparisonValue(3000);
9
- trigger.setCondition('gte');
10
- trigger.setParams('currency', 'USD');
11
- trigger.setContractAddress(getTokenFromSymbol(CHAINS.MODE, 'WETH').contractAddress);
12
- trigger.setPosition(0, 0);
13
-
14
- const slackAction = new Action(ACTIONS.NOTIFICATIONS.SLACK.SEND_MESSAGE);
15
- slackAction.setParams("webhook", "https://hooks.slack.com/services/REPLACE_WITH_YOUR_DATA");
16
- slackAction.setParams("message", "Notification from the SDK - testing the state");
17
- slackAction.setPosition(0, -10);
18
-
19
- /*const transferAction = new Action(ACTIONS.TOKENS.ERC20.TRANSFER);
20
- transferAction.setChainId(CHAINS.ETHEREUM);
21
- transferAction.setParams("value", 1000);
22
- transferAction.setParams("to", "0xe1432599B51d9BE1b5A27E2A2FB8e5dF684749C6");
23
- transferAction.setContractAddress(getTokenFromSymbol(CHAINS.ETHEREUM, 'USDC').contractAddress);*/
24
-
25
- const workflow = new Workflow("test from SDK", [trigger, slackAction]);
26
-
27
- const edge = new Edge({
28
- source: trigger,
29
- target: slackAction,
30
- });
31
-
32
- workflow.addEdge(edge);
33
-
34
- console.log(JSON.stringify(workflow.toJSON()))
35
-
36
- const creationResult = await workflow.create();
37
- console.log(workflow.getState());
38
-
39
- if (!creationResult.success) {
40
- throw new Error("An error occurred when publishing the workflow")
41
- }
42
-
43
- console.log(workflow.id);
44
-
45
- const runResult = await workflow.run();
46
- console.log(workflow.getState());
47
-
48
- if (!runResult.success) {
49
- throw new Error("An error occurred when running the workflow")
50
- }
51
-
52
- console.log(`Workflow ${workflow.id} is running`);
53
- console.log(workflow.getState());
54
-
55
- workflow.setName("ABC");
56
-
57
- const patchResult = await workflow.update();
58
- console.log(patchResult);
59
- console.log(workflow.getState());
60
- }
61
-
62
- main();
@@ -1,13 +0,0 @@
1
- import { ACTIONS, Action, TRIGGERS, Trigger, Workflow, CHAINS, getToken, Edge, apiServices } from '../src/index.js';
2
-
3
- const main = async () => {
4
-
5
- apiServices.setAuth("eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIweDdjRUI4ZDgxNDdBYWE5ZEI4MUFjQkRGRTVjMzA1MERGQ2ZGMTg1MzciLCJzdWIiOiIweDg3RkU4YjRmMkZlODM3MGY2Y0M5YTk2MzQ0MmYwN0IwMmY0OTA5QTciLCJhdWQiOiJvdG9tYXRvLXRlc3QubmV0bGlmeS5hcHAiLCJleHAiOjE3MjMzODMxOTksIm5iZiI6MTcyMDc4OTM5OSwiaWF0IjoxNzIwNzkxMTk5LCJqdGkiOiIweDY4ZDkxOWEyMGZiYjIyNDUwZDZmOTFjMzM2ZTBmYjBjMmYyYTc3MmU3Zjg4NWU1ZjRmNzg1NTM2ZGIyYTY5YTAiLCJjdHgiOnt9fQ.MHgyOTM1NTM3MWYwOWM1YzllNWE3YjI4MjVkZTNjMDljZTkwMTQ3OTQwZmU1ZWRlMjM5YTk0MmFjYTQ5YTcwZWI0MGJlNmJiZDk2MDA4ZTIxMzJmNGM3ZTVlZGIzZDZiZjYyMDE4Mzc1MzUwMTRmNTc0ODM0ZDk4YWU3NDQwNDQzOTFi");
6
- const workflows = await apiServices.getWorkflowsOfUser();
7
- // console.log(workflows);
8
- const workflow = await new Workflow().load(workflows[12].id);
9
- // const workflow = await new Workflow().load("815666d5-4232-4728-953a-abde4d85c8fd");
10
- console.log(JSON.stringify(workflow));
11
- }
12
-
13
- main();
package/examples/login.ts DELETED
@@ -1,27 +0,0 @@
1
- import { CHAINS, apiServices } from '../src/index.js';
2
-
3
- const main = async () => {
4
- const address = "0x9b1E25bBbee162A26B67B1fb00cf4d67157656F6"
5
- let payload = await apiServices.generateLoginPayload(address, CHAINS.ETHEREUM);
6
-
7
- // we replace the payload to fit the signature, don't do that in your implementation
8
- const signature = '0x92a3b551ff2bc2eb9a3537a0b477af14c33e649c3479c204bb0a4da95bfee89e4ae966e5d555d34c5dfcf3899910c58e936375634f5b0f58978139d25b5b54761b';
9
- payload = {
10
- address: '0x9b1E25bBbee162A26B67B1fb00cf4d67157656F6',
11
- chain_id: '1',
12
- domain: 'otomato-test.netlify.app',
13
- expiration_time: '2024-07-16T16:57:34.363Z',
14
- invalid_before: '2024-07-16T15:57:34.363Z',
15
- issued_at: '2024-07-16T16:27:34.363Z',
16
- nonce: '0x4ed46b76a2ccb458bc84bfc3f8aeb43bbc6a2b2f1ae5ee9f10c13ba6bd05f832',
17
- statement: 'Please ensure that the domain above matches the URL of the current website.',
18
- version: '1'
19
- }
20
-
21
- const { token } = await apiServices.getToken(payload, signature);
22
- const verify = await apiServices.verifyToken(token);
23
- console.log(token)
24
- console.log(verify)
25
- }
26
-
27
- main();