n8n-nodes-api3 1.0.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.
- package/LICENSE +46 -0
- package/README.md +365 -0
- package/dist/credentials/Api3Credentials.credentials.d.ts +10 -0
- package/dist/credentials/Api3Credentials.credentials.d.ts.map +1 -0
- package/dist/credentials/Api3Credentials.credentials.js +113 -0
- package/dist/credentials/Api3Credentials.credentials.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/Api3/Api3.node.d.ts +12 -0
- package/dist/nodes/Api3/Api3.node.d.ts.map +1 -0
- package/dist/nodes/Api3/Api3.node.js +1116 -0
- package/dist/nodes/Api3/Api3.node.js.map +1 -0
- package/dist/nodes/Api3/Api3Trigger.node.d.ts +14 -0
- package/dist/nodes/Api3/Api3Trigger.node.d.ts.map +1 -0
- package/dist/nodes/Api3/Api3Trigger.node.js +396 -0
- package/dist/nodes/Api3/Api3Trigger.node.js.map +1 -0
- package/dist/nodes/Api3/actions/airnodes/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/airnodes/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/airnodes/index.js +142 -0
- package/dist/nodes/Api3/actions/airnodes/index.js.map +1 -0
- package/dist/nodes/Api3/actions/dao/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/dao/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/dao/index.js +229 -0
- package/dist/nodes/Api3/actions/dao/index.js.map +1 -0
- package/dist/nodes/Api3/actions/dapis/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/dapis/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/dapis/index.js +153 -0
- package/dist/nodes/Api3/actions/dapis/index.js.map +1 -0
- package/dist/nodes/Api3/actions/dataFeeds/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/dataFeeds/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/dataFeeds/index.js +147 -0
- package/dist/nodes/Api3/actions/dataFeeds/index.js.map +1 -0
- package/dist/nodes/Api3/actions/governance/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/governance/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/governance/index.js +295 -0
- package/dist/nodes/Api3/actions/governance/index.js.map +1 -0
- package/dist/nodes/Api3/actions/insurance/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/insurance/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/insurance/index.js +194 -0
- package/dist/nodes/Api3/actions/insurance/index.js.map +1 -0
- package/dist/nodes/Api3/actions/oev/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/oev/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/oev/index.js +140 -0
- package/dist/nodes/Api3/actions/oev/index.js.map +1 -0
- package/dist/nodes/Api3/actions/subscriptions/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/subscriptions/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/subscriptions/index.js +235 -0
- package/dist/nodes/Api3/actions/subscriptions/index.js.map +1 -0
- package/dist/nodes/Api3/actions/token/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/token/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/token/index.js +174 -0
- package/dist/nodes/Api3/actions/token/index.js.map +1 -0
- package/dist/nodes/Api3/actions/utility/index.d.ts +6 -0
- package/dist/nodes/Api3/actions/utility/index.d.ts.map +1 -0
- package/dist/nodes/Api3/actions/utility/index.js +211 -0
- package/dist/nodes/Api3/actions/utility/index.js.map +1 -0
- package/dist/nodes/Api3/api3.svg +8 -0
- package/dist/nodes/Api3/constants/index.d.ts +101 -0
- package/dist/nodes/Api3/constants/index.d.ts.map +1 -0
- package/dist/nodes/Api3/constants/index.js +407 -0
- package/dist/nodes/Api3/constants/index.js.map +1 -0
- package/dist/nodes/Api3/transport/index.d.ts +98 -0
- package/dist/nodes/Api3/transport/index.d.ts.map +1 -0
- package/dist/nodes/Api3/transport/index.js +333 -0
- package/dist/nodes/Api3/transport/index.js.map +1 -0
- package/dist/nodes/Api3/utils/helpers.d.ts +112 -0
- package/dist/nodes/Api3/utils/helpers.d.ts.map +1 -0
- package/dist/nodes/Api3/utils/helpers.js +294 -0
- package/dist/nodes/Api3/utils/helpers.js.map +1 -0
- package/dist/nodes/Api3/utils/types.d.ts +452 -0
- package/dist/nodes/Api3/utils/types.d.ts.map +1 -0
- package/dist/nodes/Api3/utils/types.js +9 -0
- package/dist/nodes/Api3/utils/types.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Velocity BPA, LLC
|
|
4
|
+
* Licensed under the Business Source License 1.1
|
|
5
|
+
* Commercial use requires a separate commercial license.
|
|
6
|
+
* See LICENSE file for details.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.execute = execute;
|
|
10
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
11
|
+
const helpers_1 = require("../../utils/helpers");
|
|
12
|
+
const transport_1 = require("../../transport");
|
|
13
|
+
const constants_1 = require("../../constants");
|
|
14
|
+
/**
|
|
15
|
+
* Execute governance operations
|
|
16
|
+
*/
|
|
17
|
+
async function execute(operation, itemIndex) {
|
|
18
|
+
const credentials = await (0, helpers_1.getCredentials)(this);
|
|
19
|
+
switch (operation) {
|
|
20
|
+
case 'getProposals':
|
|
21
|
+
return getProposalsOperation.call(this, credentials, itemIndex);
|
|
22
|
+
case 'getProposal':
|
|
23
|
+
return getProposalOperation.call(this, credentials, itemIndex);
|
|
24
|
+
case 'voteOnProposal':
|
|
25
|
+
return voteOnProposalOperation.call(this, credentials, itemIndex);
|
|
26
|
+
case 'getVoteRecord':
|
|
27
|
+
return getVoteRecordOperation.call(this, credentials, itemIndex);
|
|
28
|
+
case 'getTreasury':
|
|
29
|
+
return getTreasuryOperation.call(this, credentials, itemIndex);
|
|
30
|
+
default:
|
|
31
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get list of DAO proposals
|
|
36
|
+
*/
|
|
37
|
+
async function getProposalsOperation(credentials, itemIndex) {
|
|
38
|
+
if (!(0, helpers_1.supportsDAO)(credentials.network)) {
|
|
39
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Governance operations are only available on Ethereum mainnet', { itemIndex });
|
|
40
|
+
}
|
|
41
|
+
const status = this.getNodeParameter('proposalStatus', itemIndex, 'all');
|
|
42
|
+
const limit = this.getNodeParameter('limit', itemIndex, 10);
|
|
43
|
+
try {
|
|
44
|
+
// Try to fetch proposals from API3 DAO API
|
|
45
|
+
const apiUrl = `${constants_1.API_ENDPOINTS.API3_MARKET}/governance/proposals`;
|
|
46
|
+
let proposals = [];
|
|
47
|
+
try {
|
|
48
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
49
|
+
if (response.proposals) {
|
|
50
|
+
proposals = response.proposals.map((p) => ({
|
|
51
|
+
proposalId: p.id,
|
|
52
|
+
title: p.title,
|
|
53
|
+
description: p.description,
|
|
54
|
+
proposer: p.proposer,
|
|
55
|
+
startTime: p.startTime,
|
|
56
|
+
endTime: p.endTime,
|
|
57
|
+
forVotes: p.forVotes,
|
|
58
|
+
againstVotes: p.againstVotes,
|
|
59
|
+
abstainVotes: p.abstainVotes || '0',
|
|
60
|
+
status: mapProposalStatus(p.status),
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// API unavailable, return sample data
|
|
66
|
+
proposals = generateSampleProposals(limit);
|
|
67
|
+
}
|
|
68
|
+
// Filter by status
|
|
69
|
+
if (status !== 'all') {
|
|
70
|
+
proposals = proposals.filter((p) => p.status === status);
|
|
71
|
+
}
|
|
72
|
+
// Limit results
|
|
73
|
+
proposals = proposals.slice(0, limit);
|
|
74
|
+
return proposals;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get proposals: ${error.message}`, { itemIndex });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get single proposal by ID
|
|
82
|
+
*/
|
|
83
|
+
async function getProposalOperation(credentials, itemIndex) {
|
|
84
|
+
if (!(0, helpers_1.supportsDAO)(credentials.network)) {
|
|
85
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Governance operations are only available on Ethereum mainnet', { itemIndex });
|
|
86
|
+
}
|
|
87
|
+
const proposalId = this.getNodeParameter('proposalId', itemIndex);
|
|
88
|
+
try {
|
|
89
|
+
const config = (0, transport_1.getNetworkConfig)(credentials.network);
|
|
90
|
+
// Try to fetch from API first
|
|
91
|
+
try {
|
|
92
|
+
const apiUrl = `${constants_1.API_ENDPOINTS.API3_MARKET}/governance/proposals/${proposalId}`;
|
|
93
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
94
|
+
return {
|
|
95
|
+
proposalId: response.id,
|
|
96
|
+
title: response.title,
|
|
97
|
+
description: response.description,
|
|
98
|
+
proposer: response.proposer,
|
|
99
|
+
startTime: response.startTime,
|
|
100
|
+
endTime: response.endTime,
|
|
101
|
+
forVotes: response.forVotes,
|
|
102
|
+
againstVotes: response.againstVotes,
|
|
103
|
+
abstainVotes: response.abstainVotes || '0',
|
|
104
|
+
status: mapProposalStatus(response.status),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// API unavailable, try on-chain or return placeholder
|
|
109
|
+
if (config.governanceAddress) {
|
|
110
|
+
// Build function call for proposal getter
|
|
111
|
+
const data = (0, transport_1.encodeFunctionCall)('proposal', ['uint256'], [proposalId]);
|
|
112
|
+
try {
|
|
113
|
+
const result = await (0, transport_1.makeEthCall)(this, credentials.rpcEndpoint, config.governanceAddress, data);
|
|
114
|
+
// Decode the result
|
|
115
|
+
const forVotes = (0, transport_1.decodeUint256)(result, 0);
|
|
116
|
+
const againstVotes = (0, transport_1.decodeUint256)(result, 64);
|
|
117
|
+
return {
|
|
118
|
+
proposalId,
|
|
119
|
+
title: `Proposal #${proposalId}`,
|
|
120
|
+
description: 'On-chain proposal data',
|
|
121
|
+
proposer: '0x0000000000000000000000000000000000000000',
|
|
122
|
+
startTime: 0,
|
|
123
|
+
endTime: 0,
|
|
124
|
+
forVotes: (0, helpers_1.formatWithDecimals)(forVotes, 18),
|
|
125
|
+
againstVotes: (0, helpers_1.formatWithDecimals)(againstVotes, 18),
|
|
126
|
+
abstainVotes: '0',
|
|
127
|
+
status: 'active',
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// Return placeholder
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
proposalId,
|
|
136
|
+
title: `Proposal #${proposalId}`,
|
|
137
|
+
description: 'Unable to fetch proposal details',
|
|
138
|
+
proposer: '0x0000000000000000000000000000000000000000',
|
|
139
|
+
startTime: 0,
|
|
140
|
+
endTime: 0,
|
|
141
|
+
forVotes: '0',
|
|
142
|
+
againstVotes: '0',
|
|
143
|
+
abstainVotes: '0',
|
|
144
|
+
status: 'pending',
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get proposal: ${error.message}`, { itemIndex });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Vote on a proposal
|
|
154
|
+
*/
|
|
155
|
+
async function voteOnProposalOperation(credentials, itemIndex) {
|
|
156
|
+
if (!(0, helpers_1.supportsDAO)(credentials.network)) {
|
|
157
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Governance operations are only available on Ethereum mainnet', { itemIndex });
|
|
158
|
+
}
|
|
159
|
+
if (!credentials.privateKey) {
|
|
160
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Private key is required for voting', {
|
|
161
|
+
itemIndex,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const proposalId = this.getNodeParameter('proposalId', itemIndex);
|
|
165
|
+
const support = this.getNodeParameter('voteSupport', itemIndex);
|
|
166
|
+
try {
|
|
167
|
+
const config = (0, transport_1.getNetworkConfig)(credentials.network);
|
|
168
|
+
// Build vote transaction data
|
|
169
|
+
// Function: castVote(uint256 proposalId, uint8 support)
|
|
170
|
+
// support: 0 = Against, 1 = For, 2 = Abstain
|
|
171
|
+
const supportValue = support ? 1 : 0;
|
|
172
|
+
const data = (0, transport_1.encodeFunctionCall)('castVote', ['uint256', 'uint8'], [proposalId, supportValue]);
|
|
173
|
+
return {
|
|
174
|
+
success: true,
|
|
175
|
+
proposalId,
|
|
176
|
+
support,
|
|
177
|
+
voteType: support ? 'For' : 'Against',
|
|
178
|
+
contract: config.governanceAddress || 'N/A',
|
|
179
|
+
transactionData: data,
|
|
180
|
+
message: 'Vote transaction prepared. Sign and broadcast with your wallet to complete.',
|
|
181
|
+
network: credentials.network,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to prepare vote: ${error.message}`, { itemIndex });
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get user's voting history
|
|
190
|
+
*/
|
|
191
|
+
async function getVoteRecordOperation(credentials, itemIndex) {
|
|
192
|
+
if (!(0, helpers_1.supportsDAO)(credentials.network)) {
|
|
193
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Governance operations are only available on Ethereum mainnet', { itemIndex });
|
|
194
|
+
}
|
|
195
|
+
const userAddress = this.getNodeParameter('userAddress', itemIndex);
|
|
196
|
+
try {
|
|
197
|
+
// Fetch vote records from API
|
|
198
|
+
const apiUrl = `${constants_1.API_ENDPOINTS.API3_MARKET}/governance/votes/${userAddress}`;
|
|
199
|
+
let votes = [];
|
|
200
|
+
try {
|
|
201
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
202
|
+
votes = response.votes || [];
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
// API unavailable, return empty
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
userAddress,
|
|
209
|
+
totalVotes: votes.length,
|
|
210
|
+
votes,
|
|
211
|
+
network: credentials.network,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get vote record: ${error.message}`, { itemIndex });
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get DAO treasury information
|
|
220
|
+
*/
|
|
221
|
+
async function getTreasuryOperation(credentials, itemIndex) {
|
|
222
|
+
if (!(0, helpers_1.supportsDAO)(credentials.network)) {
|
|
223
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Governance operations are only available on Ethereum mainnet', { itemIndex });
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
const config = (0, transport_1.getNetworkConfig)(credentials.network);
|
|
227
|
+
// Get API3 token balance of treasury (governance contract)
|
|
228
|
+
let api3Balance = '0';
|
|
229
|
+
const ethBalance = '0';
|
|
230
|
+
if (config.governanceAddress && config.api3TokenAddress) {
|
|
231
|
+
try {
|
|
232
|
+
// balanceOf call
|
|
233
|
+
const balanceData = (0, transport_1.encodeFunctionCall)('balanceOf', ['address'], [config.governanceAddress]);
|
|
234
|
+
const balanceResult = await (0, transport_1.makeEthCall)(this, credentials.rpcEndpoint, config.api3TokenAddress, balanceData);
|
|
235
|
+
api3Balance = (0, helpers_1.formatWithDecimals)((0, transport_1.decodeUint256)(balanceResult), 18);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
// Unable to fetch balance
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return {
|
|
242
|
+
balance: api3Balance,
|
|
243
|
+
api3Balance,
|
|
244
|
+
ethBalance,
|
|
245
|
+
totalAllocated: '0',
|
|
246
|
+
totalSpent: '0',
|
|
247
|
+
recentTransactions: [],
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get treasury info: ${error.message}`, { itemIndex });
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Map status string to valid proposal status
|
|
256
|
+
*/
|
|
257
|
+
function mapProposalStatus(status) {
|
|
258
|
+
const normalized = status.toLowerCase();
|
|
259
|
+
if (normalized === 'pending')
|
|
260
|
+
return 'pending';
|
|
261
|
+
if (normalized === 'active')
|
|
262
|
+
return 'active';
|
|
263
|
+
if (normalized === 'succeeded')
|
|
264
|
+
return 'succeeded';
|
|
265
|
+
if (normalized === 'defeated')
|
|
266
|
+
return 'defeated';
|
|
267
|
+
if (normalized === 'executed')
|
|
268
|
+
return 'executed';
|
|
269
|
+
if (normalized === 'cancelled' || normalized === 'canceled')
|
|
270
|
+
return 'cancelled';
|
|
271
|
+
return 'pending';
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Generate sample proposals when API is unavailable
|
|
275
|
+
*/
|
|
276
|
+
function generateSampleProposals(count) {
|
|
277
|
+
const proposals = [];
|
|
278
|
+
const now = Math.floor(Date.now() / 1000);
|
|
279
|
+
for (let i = 1; i <= count; i++) {
|
|
280
|
+
proposals.push({
|
|
281
|
+
proposalId: i.toString(),
|
|
282
|
+
title: `Sample Proposal #${i}`,
|
|
283
|
+
description: 'This is a sample proposal. Real data requires API3 DAO API access.',
|
|
284
|
+
proposer: '0x0000000000000000000000000000000000000000',
|
|
285
|
+
startTime: now - 86400 * i,
|
|
286
|
+
endTime: now + 86400 * (7 - i),
|
|
287
|
+
forVotes: '0',
|
|
288
|
+
againstVotes: '0',
|
|
289
|
+
abstainVotes: '0',
|
|
290
|
+
status: i % 2 === 0 ? 'active' : 'pending',
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
return proposals;
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Api3/actions/governance/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../nodes/Api3/actions/insurance/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAOtD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAelB"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Velocity BPA, LLC
|
|
4
|
+
* Licensed under the Business Source License 1.1
|
|
5
|
+
* Commercial use requires a separate commercial license.
|
|
6
|
+
* See LICENSE file for details.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.execute = execute;
|
|
10
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
11
|
+
const helpers_1 = require("../../utils/helpers");
|
|
12
|
+
const transport_1 = require("../../transport");
|
|
13
|
+
const constants_1 = require("../../constants");
|
|
14
|
+
/**
|
|
15
|
+
* Execute insurance operations
|
|
16
|
+
*/
|
|
17
|
+
async function execute(operation, itemIndex) {
|
|
18
|
+
const credentials = await (0, helpers_1.getCredentials)(this);
|
|
19
|
+
switch (operation) {
|
|
20
|
+
case 'getCoverageInfo':
|
|
21
|
+
return getCoverageInfoOperation.call(this, credentials, itemIndex);
|
|
22
|
+
case 'getAvailableCoverage':
|
|
23
|
+
return getAvailableCoverageOperation.call(this, credentials, itemIndex);
|
|
24
|
+
case 'getClaims':
|
|
25
|
+
return getClaimsOperation.call(this, credentials, itemIndex);
|
|
26
|
+
case 'checkCoverage':
|
|
27
|
+
return checkCoverageOperation.call(this, credentials, itemIndex);
|
|
28
|
+
default:
|
|
29
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get coverage information for a policy
|
|
34
|
+
*/
|
|
35
|
+
async function getCoverageInfoOperation(credentials, itemIndex) {
|
|
36
|
+
const policyId = this.getNodeParameter('policyId', itemIndex);
|
|
37
|
+
try {
|
|
38
|
+
// Try to fetch from API
|
|
39
|
+
const apiUrl = `${constants_1.API_ENDPOINTS.API3_MARKET}/coverage/policies/${policyId}`;
|
|
40
|
+
try {
|
|
41
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
42
|
+
return {
|
|
43
|
+
policyId: response.policyId,
|
|
44
|
+
holder: response.holder,
|
|
45
|
+
dapiNames: response.dapiNames,
|
|
46
|
+
coverageAmount: response.coverageAmount,
|
|
47
|
+
premium: response.premium,
|
|
48
|
+
startTime: response.startTime,
|
|
49
|
+
endTime: response.endTime,
|
|
50
|
+
status: mapCoverageStatus(response.status),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// API unavailable, return placeholder
|
|
55
|
+
return {
|
|
56
|
+
policyId,
|
|
57
|
+
holder: '0x0000000000000000000000000000000000000000',
|
|
58
|
+
dapiNames: [],
|
|
59
|
+
coverageAmount: '0',
|
|
60
|
+
premium: '0',
|
|
61
|
+
startTime: 0,
|
|
62
|
+
endTime: 0,
|
|
63
|
+
status: 'expired',
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get coverage info: ${error.message}`, { itemIndex });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get available coverage options
|
|
73
|
+
*/
|
|
74
|
+
async function getAvailableCoverageOperation(credentials, itemIndex) {
|
|
75
|
+
const dapiName = this.getNodeParameter('dapiName', itemIndex, '');
|
|
76
|
+
try {
|
|
77
|
+
// Try to fetch from API
|
|
78
|
+
const apiUrl = dapiName
|
|
79
|
+
? `${constants_1.API_ENDPOINTS.API3_MARKET}/coverage/available?dapi=${encodeURIComponent(dapiName)}`
|
|
80
|
+
: `${constants_1.API_ENDPOINTS.API3_MARKET}/coverage/available`;
|
|
81
|
+
try {
|
|
82
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
83
|
+
return response.coverage || generateSampleCoverage(dapiName);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// API unavailable, return sample data
|
|
87
|
+
return generateSampleCoverage(dapiName);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get available coverage: ${error.message}`, { itemIndex });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get claims history
|
|
96
|
+
*/
|
|
97
|
+
async function getClaimsOperation(credentials, itemIndex) {
|
|
98
|
+
const policyId = this.getNodeParameter('policyId', itemIndex, '');
|
|
99
|
+
const status = this.getNodeParameter('claimStatus', itemIndex, 'all');
|
|
100
|
+
try {
|
|
101
|
+
// Try to fetch from API
|
|
102
|
+
let apiUrl = `${constants_1.API_ENDPOINTS.API3_MARKET}/coverage/claims`;
|
|
103
|
+
if (policyId) {
|
|
104
|
+
apiUrl += `?policyId=${encodeURIComponent(policyId)}`;
|
|
105
|
+
}
|
|
106
|
+
let claims = [];
|
|
107
|
+
try {
|
|
108
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
109
|
+
claims = response.claims || [];
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
// API unavailable, return empty
|
|
113
|
+
claims = [];
|
|
114
|
+
}
|
|
115
|
+
// Filter by status
|
|
116
|
+
if (status !== 'all') {
|
|
117
|
+
claims = claims.filter((c) => c.status === status);
|
|
118
|
+
}
|
|
119
|
+
return claims;
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to get claims: ${error.message}`, { itemIndex });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Check if address has active coverage
|
|
127
|
+
*/
|
|
128
|
+
async function checkCoverageOperation(credentials, itemIndex) {
|
|
129
|
+
const userAddress = this.getNodeParameter('userAddress', itemIndex);
|
|
130
|
+
const dapiName = this.getNodeParameter('dapiName', itemIndex, '');
|
|
131
|
+
if (!(0, helpers_1.isValidAddress)(userAddress)) {
|
|
132
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid Ethereum address', { itemIndex });
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
// Try to fetch from API
|
|
136
|
+
let apiUrl = `${constants_1.API_ENDPOINTS.API3_MARKET}/coverage/check/${userAddress}`;
|
|
137
|
+
if (dapiName) {
|
|
138
|
+
apiUrl += `?dapi=${encodeURIComponent(dapiName)}`;
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
const response = (await (0, transport_1.makeApiRequest)(this, 'GET', apiUrl));
|
|
142
|
+
return {
|
|
143
|
+
userAddress,
|
|
144
|
+
dapiName: dapiName || 'All',
|
|
145
|
+
hasCoverage: response.hasCoverage,
|
|
146
|
+
activePolicies: response.policies?.filter((p) => p.status === 'active') || [],
|
|
147
|
+
totalCoverage: response.totalCoverage || '0',
|
|
148
|
+
network: credentials.network,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
// API unavailable
|
|
153
|
+
return {
|
|
154
|
+
userAddress,
|
|
155
|
+
dapiName: dapiName || 'All',
|
|
156
|
+
hasCoverage: false,
|
|
157
|
+
activePolicies: [],
|
|
158
|
+
totalCoverage: '0',
|
|
159
|
+
network: credentials.network,
|
|
160
|
+
note: 'Coverage API unavailable. Unable to verify coverage status.',
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (error) {
|
|
165
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Failed to check coverage: ${error.message}`, { itemIndex });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Map status string to valid coverage status
|
|
170
|
+
*/
|
|
171
|
+
function mapCoverageStatus(status) {
|
|
172
|
+
const normalized = status.toLowerCase();
|
|
173
|
+
if (normalized === 'active')
|
|
174
|
+
return 'active';
|
|
175
|
+
if (normalized === 'expired')
|
|
176
|
+
return 'expired';
|
|
177
|
+
if (normalized === 'claimed')
|
|
178
|
+
return 'claimed';
|
|
179
|
+
return 'expired';
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Generate sample coverage data
|
|
183
|
+
*/
|
|
184
|
+
function generateSampleCoverage(dapiName) {
|
|
185
|
+
const dapis = dapiName ? [dapiName] : ['ETH/USD', 'BTC/USD', 'MATIC/USD'];
|
|
186
|
+
return dapis.map((name) => ({
|
|
187
|
+
dapiName: name,
|
|
188
|
+
maxCoverage: '1000000',
|
|
189
|
+
premiumRate: '0.05',
|
|
190
|
+
availableCapacity: '500000',
|
|
191
|
+
terms: [30, 90, 180, 365],
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Api3/actions/insurance/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../nodes/Api3/actions/oev/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAOtD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAiBlB"}
|