@fileverse-dev/formulajs 4.4.11-mod-45 → 4.4.11-mod-46
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/lib/browser/formula.js +588 -311
- package/lib/browser/formula.min.js +2 -2
- package/lib/browser/formula.min.js.map +1 -1
- package/lib/cjs/index.cjs +147 -1
- package/lib/esm/crypto-constants.mjs +108 -1
- package/lib/esm/index.mjs +145 -2
- package/package.json +1 -1
- package/types/cjs/index.d.cts +3 -0
- package/types/esm/index.d.mts +3 -0
package/lib/cjs/index.cjs
CHANGED
|
@@ -13091,7 +13091,8 @@ const SERVICE_API_KEY = {
|
|
|
13091
13091
|
Gnosisscan: "GNOSIS_API_KEY",
|
|
13092
13092
|
Firefly: "FIRE_FLY_API_KEY",
|
|
13093
13093
|
GnosisPay: 'GNOSIS_API_KEY',
|
|
13094
|
-
Neynar: 'NEYNAR_API_KEY'
|
|
13094
|
+
Neynar: 'NEYNAR_API_KEY',
|
|
13095
|
+
Defillama: 'DEFILLAMA_API_KEY'
|
|
13095
13096
|
};
|
|
13096
13097
|
|
|
13097
13098
|
const fromTimeStampToBlock = async (timestamp, chain, apiKey) => {
|
|
@@ -13233,6 +13234,19 @@ const fromUsernameToFid = async (username) => {
|
|
|
13233
13234
|
return user && user.fid || null;
|
|
13234
13235
|
};
|
|
13235
13236
|
|
|
13237
|
+
// remove nested structure from the response
|
|
13238
|
+
const removeNestedStructure = (json) => {
|
|
13239
|
+
return json.map(item => {
|
|
13240
|
+
const flat = {};
|
|
13241
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13242
|
+
if (typeof value !== 'object' || value === null) {
|
|
13243
|
+
flat[key] = value;
|
|
13244
|
+
}
|
|
13245
|
+
}
|
|
13246
|
+
return flat;
|
|
13247
|
+
});
|
|
13248
|
+
};
|
|
13249
|
+
|
|
13236
13250
|
async function FIREFLY() {
|
|
13237
13251
|
const [platform, contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13238
13252
|
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
@@ -13292,9 +13306,110 @@ async function FIREFLY() {
|
|
|
13292
13306
|
}
|
|
13293
13307
|
}
|
|
13294
13308
|
|
|
13309
|
+
async function LENS() {
|
|
13310
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13311
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13312
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13313
|
+
|
|
13314
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13315
|
+
const headers = { "x-api-key": API_KEY };
|
|
13316
|
+
|
|
13317
|
+
const typeMap = {
|
|
13318
|
+
posts: "lensid",
|
|
13319
|
+
replies: "lenspostid",
|
|
13320
|
+
};
|
|
13295
13321
|
|
|
13322
|
+
const platformType = typeMap[contentType];
|
|
13323
|
+
if (!platformType) return `Lens: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13296
13324
|
|
|
13325
|
+
const query = identifier
|
|
13326
|
+
.split(",")
|
|
13327
|
+
.map(s => s.trim())
|
|
13328
|
+
.filter(Boolean)
|
|
13329
|
+
.join(",");
|
|
13297
13330
|
|
|
13331
|
+
const url = new URL(baseUrl);
|
|
13332
|
+
url.searchParams.set("query", query);
|
|
13333
|
+
url.searchParams.set("type", platformType);
|
|
13334
|
+
url.searchParams.set("start", String(start));
|
|
13335
|
+
url.searchParams.set("end", String(end));
|
|
13336
|
+
|
|
13337
|
+
try {
|
|
13338
|
+
const res = await fetch(url.toString(), { headers });
|
|
13339
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13340
|
+
|
|
13341
|
+
const json = await res.json();
|
|
13342
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13343
|
+
|
|
13344
|
+
return json.data.map(item => {
|
|
13345
|
+
const flat = {};
|
|
13346
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13347
|
+
if (typeof value !== "object" || value === null) {
|
|
13348
|
+
flat[key] = value;
|
|
13349
|
+
}
|
|
13350
|
+
}
|
|
13351
|
+
flat.platform = platform;
|
|
13352
|
+
return flat;
|
|
13353
|
+
});
|
|
13354
|
+
|
|
13355
|
+
} catch (err) {
|
|
13356
|
+
console.error("LENS fetch error:", err);
|
|
13357
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13358
|
+
}
|
|
13359
|
+
}
|
|
13360
|
+
|
|
13361
|
+
async function FARCASTER() {
|
|
13362
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13363
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13364
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13365
|
+
|
|
13366
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13367
|
+
const headers = { "x-api-key": API_KEY };
|
|
13368
|
+
|
|
13369
|
+
const typeMap = {
|
|
13370
|
+
posts: "farcasterid",
|
|
13371
|
+
replies: "farcasterpostid",
|
|
13372
|
+
channels: "farcasterchannels",
|
|
13373
|
+
};
|
|
13374
|
+
|
|
13375
|
+
const platformType = typeMap[contentType];
|
|
13376
|
+
if (!platformType) return `Farcaster: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13377
|
+
|
|
13378
|
+
const query = identifier
|
|
13379
|
+
.split(",")
|
|
13380
|
+
.map(s => s.trim())
|
|
13381
|
+
.filter(Boolean)
|
|
13382
|
+
.join(",");
|
|
13383
|
+
|
|
13384
|
+
const url = new URL(baseUrl);
|
|
13385
|
+
url.searchParams.set("query", query);
|
|
13386
|
+
url.searchParams.set("type", platformType);
|
|
13387
|
+
url.searchParams.set("start", String(start));
|
|
13388
|
+
url.searchParams.set("end", String(end));
|
|
13389
|
+
|
|
13390
|
+
try {
|
|
13391
|
+
const res = await fetch(url.toString(), { headers });
|
|
13392
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13393
|
+
|
|
13394
|
+
const json = await res.json();
|
|
13395
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13396
|
+
|
|
13397
|
+
return json.data.map(item => {
|
|
13398
|
+
const flat = {};
|
|
13399
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13400
|
+
if (typeof value !== "object" || value === null) {
|
|
13401
|
+
flat[key] = value;
|
|
13402
|
+
}
|
|
13403
|
+
}
|
|
13404
|
+
flat.platform = platform;
|
|
13405
|
+
return flat;
|
|
13406
|
+
});
|
|
13407
|
+
|
|
13408
|
+
} catch (err) {
|
|
13409
|
+
console.error("Farcaster fetch error:", err);
|
|
13410
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13411
|
+
}
|
|
13412
|
+
}
|
|
13298
13413
|
|
|
13299
13414
|
async function BLOCKSCOUT() {
|
|
13300
13415
|
let [address, type, chain, startTimestamp, endTimestamp, page, offset] = argsToArray(arguments);
|
|
@@ -13810,6 +13925,34 @@ async function SAFE() {
|
|
|
13810
13925
|
}
|
|
13811
13926
|
}
|
|
13812
13927
|
|
|
13928
|
+
async function DEFILLAMA() {
|
|
13929
|
+
let [category, param1] = argsToArray(arguments);
|
|
13930
|
+
const apiKey = window.localStorage.getItem(SERVICE_API_KEY.Defillama);
|
|
13931
|
+
if (!apiKey) return `${SERVICE_API_KEY.Defillama}_MISSING`;
|
|
13932
|
+
const baseUrl = 'https://api.llama.fi/';
|
|
13933
|
+
const categoryList = ['protocols', 'yields', 'dex'];
|
|
13934
|
+
const categoryMap = {
|
|
13935
|
+
[categoryList[0]]: 'protocols',
|
|
13936
|
+
[categoryList[1]]: 'pools',
|
|
13937
|
+
[categoryList[2]]: 'overview/dexs?excludeTotalDataChart=true&excludeTotalDataChartBreakdown=true'
|
|
13938
|
+
};
|
|
13939
|
+
let url = `${baseUrl}/${categoryMap[category]}`;
|
|
13940
|
+
if(categoryMap[category] === categoryList[0] && param1){
|
|
13941
|
+
url += `/${param1}`;
|
|
13942
|
+
}
|
|
13943
|
+
try {
|
|
13944
|
+
const response = await fetch(url);
|
|
13945
|
+
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
|
|
13946
|
+
let json = await response.json();
|
|
13947
|
+
if(json.length > 300){
|
|
13948
|
+
json = json.slice(0, 300);
|
|
13949
|
+
}
|
|
13950
|
+
return removeNestedStructure(json);
|
|
13951
|
+
} catch (e) {
|
|
13952
|
+
console.log(e);
|
|
13953
|
+
return "ERROR IN FETCHING";
|
|
13954
|
+
}
|
|
13955
|
+
}
|
|
13813
13956
|
function POLYMARKET() {
|
|
13814
13957
|
return "Coming Soon"
|
|
13815
13958
|
}
|
|
@@ -13937,6 +14080,7 @@ exports.DEC2BIN = DEC2BIN;
|
|
|
13937
14080
|
exports.DEC2HEX = DEC2HEX;
|
|
13938
14081
|
exports.DEC2OCT = DEC2OCT;
|
|
13939
14082
|
exports.DECIMAL = DECIMAL;
|
|
14083
|
+
exports.DEFILLAMA = DEFILLAMA;
|
|
13940
14084
|
exports.DEGREES = DEGREES;
|
|
13941
14085
|
exports.DELTA = DELTA;
|
|
13942
14086
|
exports.DEVSQ = DEVSQ;
|
|
@@ -13972,6 +14116,7 @@ exports.F = F;
|
|
|
13972
14116
|
exports.FACT = FACT;
|
|
13973
14117
|
exports.FACTDOUBLE = FACTDOUBLE;
|
|
13974
14118
|
exports.FALSE = FALSE;
|
|
14119
|
+
exports.FARCASTER = FARCASTER;
|
|
13975
14120
|
exports.FDIST = FDIST;
|
|
13976
14121
|
exports.FDISTRT = FDISTRT;
|
|
13977
14122
|
exports.FIND = FIND;
|
|
@@ -14063,6 +14208,7 @@ exports.LARGE = LARGE;
|
|
|
14063
14208
|
exports.LCM = LCM;
|
|
14064
14209
|
exports.LEFT = LEFT;
|
|
14065
14210
|
exports.LEN = LEN;
|
|
14211
|
+
exports.LENS = LENS;
|
|
14066
14212
|
exports.LINEST = LINEST;
|
|
14067
14213
|
exports.LN = LN;
|
|
14068
14214
|
exports.LOG = LOG;
|
|
@@ -39,7 +39,8 @@ var SERVICE_API_KEY = {
|
|
|
39
39
|
Gnosisscan: "GNOSIS_API_KEY",
|
|
40
40
|
Firefly: "FIRE_FLY_API_KEY",
|
|
41
41
|
GnosisPay: "GNOSIS_API_KEY",
|
|
42
|
-
Neynar: "NEYNAR_API_KEY"
|
|
42
|
+
Neynar: "NEYNAR_API_KEY",
|
|
43
|
+
Defillama: "DEFILLAMA_API_KEY"
|
|
43
44
|
};
|
|
44
45
|
var FUNCTION_LOCALE = [
|
|
45
46
|
{
|
|
@@ -89,6 +90,86 @@ var FUNCTION_LOCALE = [
|
|
|
89
90
|
}
|
|
90
91
|
]
|
|
91
92
|
},
|
|
93
|
+
{
|
|
94
|
+
API_KEY: SERVICE_API_KEY.Firefly,
|
|
95
|
+
LOGO: "https://firefly.social/android-chrome-192x192.png",
|
|
96
|
+
BRAND_COLOR: "#f8f5fc",
|
|
97
|
+
BRAND_SECONDARY_COLOR: "#855dcd",
|
|
98
|
+
n: "LENS",
|
|
99
|
+
t: 20,
|
|
100
|
+
d: "Fetches content from Lens.",
|
|
101
|
+
a: "Retrieves posts or replies from Lens by usernames, IDs, or hashes.",
|
|
102
|
+
p: [
|
|
103
|
+
{
|
|
104
|
+
name: "contentType",
|
|
105
|
+
detail: "Type of content to fetch. Supports 'posts' or 'replies'.",
|
|
106
|
+
example: `"posts"`,
|
|
107
|
+
require: "m",
|
|
108
|
+
type: "string"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "identifier",
|
|
112
|
+
detail: "Comma-separated usernames, IDs, or post hashes depending on platform and contentType.",
|
|
113
|
+
example: `"toka,miroyato"`,
|
|
114
|
+
require: "m",
|
|
115
|
+
type: "string"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: "start",
|
|
119
|
+
detail: "Pagination start index (default is 0).",
|
|
120
|
+
example: `0`,
|
|
121
|
+
require: "o",
|
|
122
|
+
type: "number"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: "end",
|
|
126
|
+
detail: "Pagination end index (default is 10).",
|
|
127
|
+
example: `10`,
|
|
128
|
+
require: "o",
|
|
129
|
+
type: "number"
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
API_KEY: SERVICE_API_KEY.Firefly,
|
|
135
|
+
LOGO: "https://firefly.social/android-chrome-192x192.png",
|
|
136
|
+
BRAND_COLOR: "#f8f5fc",
|
|
137
|
+
BRAND_SECONDARY_COLOR: "#855dcd",
|
|
138
|
+
n: "FARCASTER",
|
|
139
|
+
t: 20,
|
|
140
|
+
d: "Fetches content from Farcaster.",
|
|
141
|
+
a: "Retrieves posts, replies, or channels from Farcaster by usernames, IDs, or hashes.",
|
|
142
|
+
p: [
|
|
143
|
+
{
|
|
144
|
+
name: "contentType",
|
|
145
|
+
detail: "Type of content to fetch. Supports 'posts', 'replies', and 'channels'.",
|
|
146
|
+
example: `"posts"`,
|
|
147
|
+
require: "m",
|
|
148
|
+
type: "string"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "identifier",
|
|
152
|
+
detail: "Comma-separated usernames, IDs, or post hashes depending on contentType.",
|
|
153
|
+
example: `"miroyato"`,
|
|
154
|
+
require: "m",
|
|
155
|
+
type: "string"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: "start",
|
|
159
|
+
detail: "Pagination start index (default is 0).",
|
|
160
|
+
example: `0`,
|
|
161
|
+
require: "o",
|
|
162
|
+
type: "number"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: "end",
|
|
166
|
+
detail: "Pagination end index (default is 10).",
|
|
167
|
+
example: `10`,
|
|
168
|
+
require: "o",
|
|
169
|
+
type: "number"
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
},
|
|
92
173
|
{
|
|
93
174
|
API_KEY: SERVICE_API_KEY.Neynar,
|
|
94
175
|
LOGO: "https://framerusercontent.com/images/OS5YeZ2Y7DmszAxL6Zf06pXtKzc.svg",
|
|
@@ -901,6 +982,32 @@ If "derivatives": exchange name (e.g., "binance_futures").`,
|
|
|
901
982
|
d: "Fetch data from Tally.(Comming soon)",
|
|
902
983
|
a: "Fetch data from Tally.(Comming soon)",
|
|
903
984
|
p: []
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
API_KEY: SERVICE_API_KEY.Defillama,
|
|
988
|
+
LOGO: "https://defillama.com/favicon-32x32.png",
|
|
989
|
+
BRAND_COLOR: "#f8f5fc",
|
|
990
|
+
BRAND_SECONDARY_COLOR: "#855dcd",
|
|
991
|
+
n: "DEFILLAMA",
|
|
992
|
+
t: 20,
|
|
993
|
+
d: "Fetches content from Defillama.",
|
|
994
|
+
a: "Retrieves data from Defillama.",
|
|
995
|
+
p: [
|
|
996
|
+
{
|
|
997
|
+
name: "category",
|
|
998
|
+
detail: "Type of content to fetch. Supports 'protocols', 'yields', or 'dex'.",
|
|
999
|
+
example: `"protocols"`,
|
|
1000
|
+
require: "m",
|
|
1001
|
+
type: "string"
|
|
1002
|
+
},
|
|
1003
|
+
{
|
|
1004
|
+
name: "param1",
|
|
1005
|
+
detail: "For protocols, it's the protocol name. (optional)",
|
|
1006
|
+
example: `"aave"`,
|
|
1007
|
+
require: "m",
|
|
1008
|
+
type: "string"
|
|
1009
|
+
}
|
|
1010
|
+
]
|
|
904
1011
|
}
|
|
905
1012
|
];
|
|
906
1013
|
export {
|
package/lib/esm/index.mjs
CHANGED
|
@@ -13089,7 +13089,8 @@ const SERVICE_API_KEY = {
|
|
|
13089
13089
|
Gnosisscan: "GNOSIS_API_KEY",
|
|
13090
13090
|
Firefly: "FIRE_FLY_API_KEY",
|
|
13091
13091
|
GnosisPay: 'GNOSIS_API_KEY',
|
|
13092
|
-
Neynar: 'NEYNAR_API_KEY'
|
|
13092
|
+
Neynar: 'NEYNAR_API_KEY',
|
|
13093
|
+
Defillama: 'DEFILLAMA_API_KEY'
|
|
13093
13094
|
};
|
|
13094
13095
|
|
|
13095
13096
|
const fromTimeStampToBlock = async (timestamp, chain, apiKey) => {
|
|
@@ -13231,6 +13232,19 @@ const fromUsernameToFid = async (username) => {
|
|
|
13231
13232
|
return user && user.fid || null;
|
|
13232
13233
|
};
|
|
13233
13234
|
|
|
13235
|
+
// remove nested structure from the response
|
|
13236
|
+
const removeNestedStructure = (json) => {
|
|
13237
|
+
return json.map(item => {
|
|
13238
|
+
const flat = {};
|
|
13239
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13240
|
+
if (typeof value !== 'object' || value === null) {
|
|
13241
|
+
flat[key] = value;
|
|
13242
|
+
}
|
|
13243
|
+
}
|
|
13244
|
+
return flat;
|
|
13245
|
+
});
|
|
13246
|
+
};
|
|
13247
|
+
|
|
13234
13248
|
async function FIREFLY() {
|
|
13235
13249
|
const [platform, contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13236
13250
|
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
@@ -13290,9 +13304,110 @@ async function FIREFLY() {
|
|
|
13290
13304
|
}
|
|
13291
13305
|
}
|
|
13292
13306
|
|
|
13307
|
+
async function LENS() {
|
|
13308
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13309
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13310
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13311
|
+
|
|
13312
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13313
|
+
const headers = { "x-api-key": API_KEY };
|
|
13314
|
+
|
|
13315
|
+
const typeMap = {
|
|
13316
|
+
posts: "lensid",
|
|
13317
|
+
replies: "lenspostid",
|
|
13318
|
+
};
|
|
13293
13319
|
|
|
13320
|
+
const platformType = typeMap[contentType];
|
|
13321
|
+
if (!platformType) return `Lens: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13294
13322
|
|
|
13323
|
+
const query = identifier
|
|
13324
|
+
.split(",")
|
|
13325
|
+
.map(s => s.trim())
|
|
13326
|
+
.filter(Boolean)
|
|
13327
|
+
.join(",");
|
|
13295
13328
|
|
|
13329
|
+
const url = new URL(baseUrl);
|
|
13330
|
+
url.searchParams.set("query", query);
|
|
13331
|
+
url.searchParams.set("type", platformType);
|
|
13332
|
+
url.searchParams.set("start", String(start));
|
|
13333
|
+
url.searchParams.set("end", String(end));
|
|
13334
|
+
|
|
13335
|
+
try {
|
|
13336
|
+
const res = await fetch(url.toString(), { headers });
|
|
13337
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13338
|
+
|
|
13339
|
+
const json = await res.json();
|
|
13340
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13341
|
+
|
|
13342
|
+
return json.data.map(item => {
|
|
13343
|
+
const flat = {};
|
|
13344
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13345
|
+
if (typeof value !== "object" || value === null) {
|
|
13346
|
+
flat[key] = value;
|
|
13347
|
+
}
|
|
13348
|
+
}
|
|
13349
|
+
flat.platform = platform;
|
|
13350
|
+
return flat;
|
|
13351
|
+
});
|
|
13352
|
+
|
|
13353
|
+
} catch (err) {
|
|
13354
|
+
console.error("LENS fetch error:", err);
|
|
13355
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13356
|
+
}
|
|
13357
|
+
}
|
|
13358
|
+
|
|
13359
|
+
async function FARCASTER() {
|
|
13360
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13361
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13362
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13363
|
+
|
|
13364
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13365
|
+
const headers = { "x-api-key": API_KEY };
|
|
13366
|
+
|
|
13367
|
+
const typeMap = {
|
|
13368
|
+
posts: "farcasterid",
|
|
13369
|
+
replies: "farcasterpostid",
|
|
13370
|
+
channels: "farcasterchannels",
|
|
13371
|
+
};
|
|
13372
|
+
|
|
13373
|
+
const platformType = typeMap[contentType];
|
|
13374
|
+
if (!platformType) return `Farcaster: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13375
|
+
|
|
13376
|
+
const query = identifier
|
|
13377
|
+
.split(",")
|
|
13378
|
+
.map(s => s.trim())
|
|
13379
|
+
.filter(Boolean)
|
|
13380
|
+
.join(",");
|
|
13381
|
+
|
|
13382
|
+
const url = new URL(baseUrl);
|
|
13383
|
+
url.searchParams.set("query", query);
|
|
13384
|
+
url.searchParams.set("type", platformType);
|
|
13385
|
+
url.searchParams.set("start", String(start));
|
|
13386
|
+
url.searchParams.set("end", String(end));
|
|
13387
|
+
|
|
13388
|
+
try {
|
|
13389
|
+
const res = await fetch(url.toString(), { headers });
|
|
13390
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13391
|
+
|
|
13392
|
+
const json = await res.json();
|
|
13393
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13394
|
+
|
|
13395
|
+
return json.data.map(item => {
|
|
13396
|
+
const flat = {};
|
|
13397
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13398
|
+
if (typeof value !== "object" || value === null) {
|
|
13399
|
+
flat[key] = value;
|
|
13400
|
+
}
|
|
13401
|
+
}
|
|
13402
|
+
flat.platform = platform;
|
|
13403
|
+
return flat;
|
|
13404
|
+
});
|
|
13405
|
+
|
|
13406
|
+
} catch (err) {
|
|
13407
|
+
console.error("Farcaster fetch error:", err);
|
|
13408
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13409
|
+
}
|
|
13410
|
+
}
|
|
13296
13411
|
|
|
13297
13412
|
async function BLOCKSCOUT() {
|
|
13298
13413
|
let [address, type, chain, startTimestamp, endTimestamp, page, offset] = argsToArray(arguments);
|
|
@@ -13808,6 +13923,34 @@ async function SAFE() {
|
|
|
13808
13923
|
}
|
|
13809
13924
|
}
|
|
13810
13925
|
|
|
13926
|
+
async function DEFILLAMA() {
|
|
13927
|
+
let [category, param1] = argsToArray(arguments);
|
|
13928
|
+
const apiKey = window.localStorage.getItem(SERVICE_API_KEY.Defillama);
|
|
13929
|
+
if (!apiKey) return `${SERVICE_API_KEY.Defillama}_MISSING`;
|
|
13930
|
+
const baseUrl = 'https://api.llama.fi/';
|
|
13931
|
+
const categoryList = ['protocols', 'yields', 'dex'];
|
|
13932
|
+
const categoryMap = {
|
|
13933
|
+
[categoryList[0]]: 'protocols',
|
|
13934
|
+
[categoryList[1]]: 'pools',
|
|
13935
|
+
[categoryList[2]]: 'overview/dexs?excludeTotalDataChart=true&excludeTotalDataChartBreakdown=true'
|
|
13936
|
+
};
|
|
13937
|
+
let url = `${baseUrl}/${categoryMap[category]}`;
|
|
13938
|
+
if(categoryMap[category] === categoryList[0] && param1){
|
|
13939
|
+
url += `/${param1}`;
|
|
13940
|
+
}
|
|
13941
|
+
try {
|
|
13942
|
+
const response = await fetch(url);
|
|
13943
|
+
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
|
|
13944
|
+
let json = await response.json();
|
|
13945
|
+
if(json.length > 300){
|
|
13946
|
+
json = json.slice(0, 300);
|
|
13947
|
+
}
|
|
13948
|
+
return removeNestedStructure(json);
|
|
13949
|
+
} catch (e) {
|
|
13950
|
+
console.log(e);
|
|
13951
|
+
return "ERROR IN FETCHING";
|
|
13952
|
+
}
|
|
13953
|
+
}
|
|
13811
13954
|
function POLYMARKET() {
|
|
13812
13955
|
return "Coming Soon"
|
|
13813
13956
|
}
|
|
@@ -13839,4 +13982,4 @@ function POLYMARKET() {
|
|
|
13839
13982
|
|
|
13840
13983
|
const utils = { errors, symbols, date };
|
|
13841
13984
|
|
|
13842
|
-
export { ABS, ACCRINT, ACOS, ACOSH, ACOT, ACOTH, AGGREGATE, AND, ARABIC, ARTEMIS, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, AVERAGEA, AVERAGEIF, AVERAGEIFS, BESSELI, BESSELJ, BESSELK, BESSELY, BETA, BETADIST, BETAINV, BIN2DEC, BIN2HEX, BIN2OCT, BINOM, BINOMDIST, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, BLOCKSCOUT, CEILING, CEILINGMATH, CEILINGPRECISE, CHAR, CHIDIST, CHIDISTRT, CHIINV, CHIINVRT, CHISQ, CHITEST, CHOOSE, CLEAN, CODE, COINGECKO, COLUMN, COLUMNS, COMBIN, COMBINA, COMPLEX, CONCAT, CONCATENATE, CONFIDENCE, CONVERT, CORREL, COS, COSH, COT, COTH, COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS, COUPDAYS, COVAR, COVARIANCE, COVARIANCEP, COVARIANCES, CRITBINOM, CSC, CSCH, CUMIPMT, CUMPRINC, DATE, DATEDIF, DATEVALUE, DAVERAGE, DAY, DAYS, DAYS360, DB, DCOUNT, DCOUNTA, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DECIMAL, DEGREES, DELTA, DEVSQ, DGET, DISC, DMAX, DMIN, DOLLAR, DOLLARDE, DOLLARFR, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EFFECT, EOA, EOMONTH, ERF, ERFC, ERFCPRECISE, ERFPRECISE, ERROR, ETHERSCAN, EVEN, EXACT, EXP, EXPON, EXPONDIST, F, FACT, FACTDOUBLE, FALSE, FDIST, FDISTRT, FIND, FINV, FINVRT, FIREFLY, FISHER, FISHERINV, FIXED, FLOOR, FLOORMATH, FLOORPRECISE, FLVURL, FORECAST, FREQUENCY, FTEST, FV, FVSCHEDULE, GAMMA, GAMMADIST, GAMMAINV, GAMMALN, GAMMALNPRECISE, GAUSS, GCD, GEOMEAN, GESTEP, GNOSIS, GNOSISPAY, GROWTH, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, HOUR, HYPGEOM, HYPGEOMDIST, IF, IFERROR, IFNA, IFS, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, INDEX, INT, INTERCEPT, IPMT, IRR, ISBLANK, ISDATE, ISERR, ISERROR, ISEVEN, ISLOGICAL, ISNA, ISNONTEXT, ISNUMBER, ISO, ISODD, ISOWEEKNUM, ISPMT, ISTEXT, KURT, LARGE, LCM, LEFT, LEN, LINEST, LN, LOG, LOG10, LOGEST, LOGINV, LOGNORM, LOGNORMDIST, LOGNORMINV, LOOKUP, LOWER, MATCH, MAX, MAXA, MAXIFS, MEDIAN, MEERKAT, MID, MIN, MINA, MINIFS, MINUTE, MIRR, MMULT, MOD, MODE, MODEMULT, MODESNGL, MONTH, MROUND, MULTINOMIAL, MUNIT, N, NA, NEGBINOM, NEGBINOMDIST, NETWORKDAYS, NETWORKDAYSINTL, NETWORKDAYS_INTL, NEYNAR, NOMINAL, NORM, NORMDIST, NORMINV, NORMSDIST, NORMSINV, NOT, NOW, NPER, NPV, NUMBERVALUE, OCT2BIN, OCT2DEC, OCT2HEX, ODD, OR, PDURATION, PEARSON, PERCENTILE, PERCENTILEEXC, PERCENTILEINC, PERCENTRANK, PERCENTRANKEXC, PERCENTRANKINC, PERMUT, PERMUTATIONA, PHI, PI, PMT, PNL, POISSON, POISSONDIST, POLYMARKET, POWER, PPMT, PRICEDISC, PRIVACYPOOL, PROB, PRODUCT, PROPER, PV, QUARTILE, QUARTILEEXC, QUARTILEINC, QUOTIENT, RADIANS, RAND, RANDBETWEEN, RANK, RANKAVG, RANKEQ, RATE, REPLACE, REPT, RIGHT, ROMAN, ROTKI, ROUND, ROUNDDOWN, ROUNDUP, ROW, ROWS, RRI, RSQ, SAFE, SEARCH, SEC, SECH, SECOND, SERIESSUM, SIGN, SIN, SINH, SKEW, SKEWP, SLN, SLOPE, SMALL, SORT, SQRT, SQRTPI, STANDARDIZE, STDEV, STDEVA, STDEVP, STDEVPA, STDEVS, STEYX, SUBSTITUTE, SUBTOTAL, SUM, SUMIF, SUMIFS, SUMPRODUCT, SUMSQ, SUMX2MY2, SUMX2PY2, SUMXMY2, SWITCH, SYD, T, TALLY, TAN, TANH, TBILLEQ, TBILLPRICE, TBILLYIELD, TDIST, TDISTRT, TEXT, TEXTJOIN, TIME, TIMEVALUE, TINV, TODAY, TRANSPOSE, TREND, TRIM, TRIMMEAN, TRUE, TRUNC, TTEST, TYPE, UNICHAR, UNICODE, UNIQUE, UPPER, VALUE, VAR, VARA, VARP, VARPA, VARS, VLOOKUP, WEEKDAY, WEEKNUM, WEIBULL, WEIBULLDIST, WORKDAY, WORKDAYINTL, WORKDAY_INTL, XIRR, XNPV, XOR, YEAR, YEARFRAC, Z, ZTEST, utils };
|
|
13985
|
+
export { ABS, ACCRINT, ACOS, ACOSH, ACOT, ACOTH, AGGREGATE, AND, ARABIC, ARTEMIS, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, AVERAGEA, AVERAGEIF, AVERAGEIFS, BESSELI, BESSELJ, BESSELK, BESSELY, BETA, BETADIST, BETAINV, BIN2DEC, BIN2HEX, BIN2OCT, BINOM, BINOMDIST, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, BLOCKSCOUT, CEILING, CEILINGMATH, CEILINGPRECISE, CHAR, CHIDIST, CHIDISTRT, CHIINV, CHIINVRT, CHISQ, CHITEST, CHOOSE, CLEAN, CODE, COINGECKO, COLUMN, COLUMNS, COMBIN, COMBINA, COMPLEX, CONCAT, CONCATENATE, CONFIDENCE, CONVERT, CORREL, COS, COSH, COT, COTH, COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS, COUPDAYS, COVAR, COVARIANCE, COVARIANCEP, COVARIANCES, CRITBINOM, CSC, CSCH, CUMIPMT, CUMPRINC, DATE, DATEDIF, DATEVALUE, DAVERAGE, DAY, DAYS, DAYS360, DB, DCOUNT, DCOUNTA, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DECIMAL, DEFILLAMA, DEGREES, DELTA, DEVSQ, DGET, DISC, DMAX, DMIN, DOLLAR, DOLLARDE, DOLLARFR, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EFFECT, EOA, EOMONTH, ERF, ERFC, ERFCPRECISE, ERFPRECISE, ERROR, ETHERSCAN, EVEN, EXACT, EXP, EXPON, EXPONDIST, F, FACT, FACTDOUBLE, FALSE, FARCASTER, FDIST, FDISTRT, FIND, FINV, FINVRT, FIREFLY, FISHER, FISHERINV, FIXED, FLOOR, FLOORMATH, FLOORPRECISE, FLVURL, FORECAST, FREQUENCY, FTEST, FV, FVSCHEDULE, GAMMA, GAMMADIST, GAMMAINV, GAMMALN, GAMMALNPRECISE, GAUSS, GCD, GEOMEAN, GESTEP, GNOSIS, GNOSISPAY, GROWTH, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, HOUR, HYPGEOM, HYPGEOMDIST, IF, IFERROR, IFNA, IFS, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, INDEX, INT, INTERCEPT, IPMT, IRR, ISBLANK, ISDATE, ISERR, ISERROR, ISEVEN, ISLOGICAL, ISNA, ISNONTEXT, ISNUMBER, ISO, ISODD, ISOWEEKNUM, ISPMT, ISTEXT, KURT, LARGE, LCM, LEFT, LEN, LENS, LINEST, LN, LOG, LOG10, LOGEST, LOGINV, LOGNORM, LOGNORMDIST, LOGNORMINV, LOOKUP, LOWER, MATCH, MAX, MAXA, MAXIFS, MEDIAN, MEERKAT, MID, MIN, MINA, MINIFS, MINUTE, MIRR, MMULT, MOD, MODE, MODEMULT, MODESNGL, MONTH, MROUND, MULTINOMIAL, MUNIT, N, NA, NEGBINOM, NEGBINOMDIST, NETWORKDAYS, NETWORKDAYSINTL, NETWORKDAYS_INTL, NEYNAR, NOMINAL, NORM, NORMDIST, NORMINV, NORMSDIST, NORMSINV, NOT, NOW, NPER, NPV, NUMBERVALUE, OCT2BIN, OCT2DEC, OCT2HEX, ODD, OR, PDURATION, PEARSON, PERCENTILE, PERCENTILEEXC, PERCENTILEINC, PERCENTRANK, PERCENTRANKEXC, PERCENTRANKINC, PERMUT, PERMUTATIONA, PHI, PI, PMT, PNL, POISSON, POISSONDIST, POLYMARKET, POWER, PPMT, PRICEDISC, PRIVACYPOOL, PROB, PRODUCT, PROPER, PV, QUARTILE, QUARTILEEXC, QUARTILEINC, QUOTIENT, RADIANS, RAND, RANDBETWEEN, RANK, RANKAVG, RANKEQ, RATE, REPLACE, REPT, RIGHT, ROMAN, ROTKI, ROUND, ROUNDDOWN, ROUNDUP, ROW, ROWS, RRI, RSQ, SAFE, SEARCH, SEC, SECH, SECOND, SERIESSUM, SIGN, SIN, SINH, SKEW, SKEWP, SLN, SLOPE, SMALL, SORT, SQRT, SQRTPI, STANDARDIZE, STDEV, STDEVA, STDEVP, STDEVPA, STDEVS, STEYX, SUBSTITUTE, SUBTOTAL, SUM, SUMIF, SUMIFS, SUMPRODUCT, SUMSQ, SUMX2MY2, SUMX2PY2, SUMXMY2, SWITCH, SYD, T, TALLY, TAN, TANH, TBILLEQ, TBILLPRICE, TBILLYIELD, TDIST, TDISTRT, TEXT, TEXTJOIN, TIME, TIMEVALUE, TINV, TODAY, TRANSPOSE, TREND, TRIM, TRIMMEAN, TRUE, TRUNC, TTEST, TYPE, UNICHAR, UNICODE, UNIQUE, UPPER, VALUE, VAR, VARA, VARP, VARPA, VARS, VLOOKUP, WEEKDAY, WEEKNUM, WEIBULL, WEIBULLDIST, WORKDAY, WORKDAYINTL, WORKDAY_INTL, XIRR, XNPV, XOR, YEAR, YEARFRAC, Z, ZTEST, utils };
|
package/package.json
CHANGED
package/types/cjs/index.d.cts
CHANGED
|
@@ -1095,6 +1095,7 @@ export function DEC2OCT(number: any, places: any): any;
|
|
|
1095
1095
|
* @returns
|
|
1096
1096
|
*/
|
|
1097
1097
|
export function DECIMAL(text: any, radix: any, ...args: any[]): any;
|
|
1098
|
+
export function DEFILLAMA(...args: any[]): Promise<any>;
|
|
1098
1099
|
/**
|
|
1099
1100
|
* Converts radians to degrees.
|
|
1100
1101
|
*
|
|
@@ -1460,6 +1461,7 @@ export function FACTDOUBLE(number: any): any;
|
|
|
1460
1461
|
* @returns
|
|
1461
1462
|
*/
|
|
1462
1463
|
export function FALSE(): boolean;
|
|
1464
|
+
export function FARCASTER(...args: any[]): Promise<any>;
|
|
1463
1465
|
/**
|
|
1464
1466
|
* Returns the F probability distribution.
|
|
1465
1467
|
*
|
|
@@ -2401,6 +2403,7 @@ export function LEFT(text: any, num_chars: any): any;
|
|
|
2401
2403
|
* @returns
|
|
2402
2404
|
*/
|
|
2403
2405
|
export function LEN(text: any, ...args: any[]): any;
|
|
2406
|
+
export function LENS(...args: any[]): Promise<any>;
|
|
2404
2407
|
/**
|
|
2405
2408
|
* Returns the parameters of a linear trend.
|
|
2406
2409
|
*
|
package/types/esm/index.d.mts
CHANGED
|
@@ -1095,6 +1095,7 @@ export function DEC2OCT(number: any, places: any): any;
|
|
|
1095
1095
|
* @returns
|
|
1096
1096
|
*/
|
|
1097
1097
|
export function DECIMAL(text: any, radix: any, ...args: any[]): any;
|
|
1098
|
+
export function DEFILLAMA(...args: any[]): Promise<any>;
|
|
1098
1099
|
/**
|
|
1099
1100
|
* Converts radians to degrees.
|
|
1100
1101
|
*
|
|
@@ -1460,6 +1461,7 @@ export function FACTDOUBLE(number: any): any;
|
|
|
1460
1461
|
* @returns
|
|
1461
1462
|
*/
|
|
1462
1463
|
export function FALSE(): boolean;
|
|
1464
|
+
export function FARCASTER(...args: any[]): Promise<any>;
|
|
1463
1465
|
/**
|
|
1464
1466
|
* Returns the F probability distribution.
|
|
1465
1467
|
*
|
|
@@ -2401,6 +2403,7 @@ export function LEFT(text: any, num_chars: any): any;
|
|
|
2401
2403
|
* @returns
|
|
2402
2404
|
*/
|
|
2403
2405
|
export function LEN(text: any, ...args: any[]): any;
|
|
2406
|
+
export function LENS(...args: any[]): Promise<any>;
|
|
2404
2407
|
/**
|
|
2405
2408
|
* Returns the parameters of a linear trend.
|
|
2406
2409
|
*
|