@fileverse-dev/formulajs 4.4.11-mod-45 → 4.4.11-mod-47
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 +595 -317
- package/lib/browser/formula.min.js +2 -2
- package/lib/browser/formula.min.js.map +1 -1
- package/lib/cjs/index.cjs +148 -1
- package/lib/esm/crypto-constants.mjs +110 -3
- package/lib/esm/index.mjs +146 -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) => {
|
|
@@ -13217,6 +13218,7 @@ if (scanKey === SERVICE_API_KEY.Gnosisscan) chainId = 'gnosis';
|
|
|
13217
13218
|
|
|
13218
13219
|
const fromUsernameToFid = async (username) => {
|
|
13219
13220
|
if(!username) return null
|
|
13221
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Neynar);
|
|
13220
13222
|
const url = `https://api.neynar.com/v2/farcaster/user/search/`;
|
|
13221
13223
|
const res = await fetch(url, {
|
|
13222
13224
|
query: {
|
|
@@ -13233,6 +13235,19 @@ const fromUsernameToFid = async (username) => {
|
|
|
13233
13235
|
return user && user.fid || null;
|
|
13234
13236
|
};
|
|
13235
13237
|
|
|
13238
|
+
// remove nested structure from the response
|
|
13239
|
+
const removeNestedStructure = (json) => {
|
|
13240
|
+
return json.map(item => {
|
|
13241
|
+
const flat = {};
|
|
13242
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13243
|
+
if (typeof value !== 'object' || value === null) {
|
|
13244
|
+
flat[key] = value;
|
|
13245
|
+
}
|
|
13246
|
+
}
|
|
13247
|
+
return flat;
|
|
13248
|
+
});
|
|
13249
|
+
};
|
|
13250
|
+
|
|
13236
13251
|
async function FIREFLY() {
|
|
13237
13252
|
const [platform, contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13238
13253
|
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
@@ -13292,9 +13307,110 @@ async function FIREFLY() {
|
|
|
13292
13307
|
}
|
|
13293
13308
|
}
|
|
13294
13309
|
|
|
13310
|
+
async function LENS() {
|
|
13311
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13312
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13313
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13314
|
+
|
|
13315
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13316
|
+
const headers = { "x-api-key": API_KEY };
|
|
13317
|
+
|
|
13318
|
+
const typeMap = {
|
|
13319
|
+
posts: "lensid",
|
|
13320
|
+
replies: "lenspostid",
|
|
13321
|
+
};
|
|
13322
|
+
|
|
13323
|
+
const platformType = typeMap[contentType];
|
|
13324
|
+
if (!platformType) return `Lens: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13325
|
+
|
|
13326
|
+
const query = identifier
|
|
13327
|
+
.split(",")
|
|
13328
|
+
.map(s => s.trim())
|
|
13329
|
+
.filter(Boolean)
|
|
13330
|
+
.join(",");
|
|
13331
|
+
|
|
13332
|
+
const url = new URL(baseUrl);
|
|
13333
|
+
url.searchParams.set("query", query);
|
|
13334
|
+
url.searchParams.set("type", platformType);
|
|
13335
|
+
url.searchParams.set("start", String(start));
|
|
13336
|
+
url.searchParams.set("end", String(end));
|
|
13337
|
+
|
|
13338
|
+
try {
|
|
13339
|
+
const res = await fetch(url.toString(), { headers });
|
|
13340
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13341
|
+
|
|
13342
|
+
const json = await res.json();
|
|
13343
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13344
|
+
|
|
13345
|
+
return json.data.map(item => {
|
|
13346
|
+
const flat = {};
|
|
13347
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13348
|
+
if (typeof value !== "object" || value === null) {
|
|
13349
|
+
flat[key] = value;
|
|
13350
|
+
}
|
|
13351
|
+
}
|
|
13352
|
+
flat.platform = platform;
|
|
13353
|
+
return flat;
|
|
13354
|
+
});
|
|
13355
|
+
|
|
13356
|
+
} catch (err) {
|
|
13357
|
+
console.error("LENS fetch error:", err);
|
|
13358
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13359
|
+
}
|
|
13360
|
+
}
|
|
13361
|
+
|
|
13362
|
+
async function FARCASTER() {
|
|
13363
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13364
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13365
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13366
|
+
|
|
13367
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13368
|
+
const headers = { "x-api-key": API_KEY };
|
|
13369
|
+
|
|
13370
|
+
const typeMap = {
|
|
13371
|
+
posts: "farcasterid",
|
|
13372
|
+
replies: "farcasterpostid",
|
|
13373
|
+
channels: "farcasterchannels",
|
|
13374
|
+
};
|
|
13375
|
+
|
|
13376
|
+
const platformType = typeMap[contentType];
|
|
13377
|
+
if (!platformType) return `Farcaster: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13378
|
+
|
|
13379
|
+
const query = identifier
|
|
13380
|
+
.split(",")
|
|
13381
|
+
.map(s => s.trim())
|
|
13382
|
+
.filter(Boolean)
|
|
13383
|
+
.join(",");
|
|
13295
13384
|
|
|
13385
|
+
const url = new URL(baseUrl);
|
|
13386
|
+
url.searchParams.set("query", query);
|
|
13387
|
+
url.searchParams.set("type", platformType);
|
|
13388
|
+
url.searchParams.set("start", String(start));
|
|
13389
|
+
url.searchParams.set("end", String(end));
|
|
13296
13390
|
|
|
13391
|
+
try {
|
|
13392
|
+
const res = await fetch(url.toString(), { headers });
|
|
13393
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13297
13394
|
|
|
13395
|
+
const json = await res.json();
|
|
13396
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13397
|
+
|
|
13398
|
+
return json.data.map(item => {
|
|
13399
|
+
const flat = {};
|
|
13400
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13401
|
+
if (typeof value !== "object" || value === null) {
|
|
13402
|
+
flat[key] = value;
|
|
13403
|
+
}
|
|
13404
|
+
}
|
|
13405
|
+
flat.platform = platform;
|
|
13406
|
+
return flat;
|
|
13407
|
+
});
|
|
13408
|
+
|
|
13409
|
+
} catch (err) {
|
|
13410
|
+
console.error("Farcaster fetch error:", err);
|
|
13411
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13412
|
+
}
|
|
13413
|
+
}
|
|
13298
13414
|
|
|
13299
13415
|
async function BLOCKSCOUT() {
|
|
13300
13416
|
let [address, type, chain, startTimestamp, endTimestamp, page, offset] = argsToArray(arguments);
|
|
@@ -13810,6 +13926,34 @@ async function SAFE() {
|
|
|
13810
13926
|
}
|
|
13811
13927
|
}
|
|
13812
13928
|
|
|
13929
|
+
async function DEFILLAMA() {
|
|
13930
|
+
let [category, param1] = argsToArray(arguments);
|
|
13931
|
+
const apiKey = window.localStorage.getItem(SERVICE_API_KEY.Defillama);
|
|
13932
|
+
if (!apiKey) return `${SERVICE_API_KEY.Defillama}_MISSING`;
|
|
13933
|
+
const baseUrl = 'https://api.llama.fi/';
|
|
13934
|
+
const categoryList = ['protocols', 'yields', 'dex'];
|
|
13935
|
+
const categoryMap = {
|
|
13936
|
+
[categoryList[0]]: 'protocols',
|
|
13937
|
+
[categoryList[1]]: 'pools',
|
|
13938
|
+
[categoryList[2]]: 'overview/dexs?excludeTotalDataChart=true&excludeTotalDataChartBreakdown=true'
|
|
13939
|
+
};
|
|
13940
|
+
let url = `${baseUrl}/${categoryMap[category]}`;
|
|
13941
|
+
if(categoryMap[category] === categoryList[0] && param1){
|
|
13942
|
+
url += `/${param1}`;
|
|
13943
|
+
}
|
|
13944
|
+
try {
|
|
13945
|
+
const response = await fetch(url);
|
|
13946
|
+
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
|
|
13947
|
+
let json = await response.json();
|
|
13948
|
+
if(json.length > 300){
|
|
13949
|
+
json = json.slice(0, 300);
|
|
13950
|
+
}
|
|
13951
|
+
return removeNestedStructure(json);
|
|
13952
|
+
} catch (e) {
|
|
13953
|
+
console.log(e);
|
|
13954
|
+
return "ERROR IN FETCHING";
|
|
13955
|
+
}
|
|
13956
|
+
}
|
|
13813
13957
|
function POLYMARKET() {
|
|
13814
13958
|
return "Coming Soon"
|
|
13815
13959
|
}
|
|
@@ -13937,6 +14081,7 @@ exports.DEC2BIN = DEC2BIN;
|
|
|
13937
14081
|
exports.DEC2HEX = DEC2HEX;
|
|
13938
14082
|
exports.DEC2OCT = DEC2OCT;
|
|
13939
14083
|
exports.DECIMAL = DECIMAL;
|
|
14084
|
+
exports.DEFILLAMA = DEFILLAMA;
|
|
13940
14085
|
exports.DEGREES = DEGREES;
|
|
13941
14086
|
exports.DELTA = DELTA;
|
|
13942
14087
|
exports.DEVSQ = DEVSQ;
|
|
@@ -13972,6 +14117,7 @@ exports.F = F;
|
|
|
13972
14117
|
exports.FACT = FACT;
|
|
13973
14118
|
exports.FACTDOUBLE = FACTDOUBLE;
|
|
13974
14119
|
exports.FALSE = FALSE;
|
|
14120
|
+
exports.FARCASTER = FARCASTER;
|
|
13975
14121
|
exports.FDIST = FDIST;
|
|
13976
14122
|
exports.FDISTRT = FDISTRT;
|
|
13977
14123
|
exports.FIND = FIND;
|
|
@@ -14063,6 +14209,7 @@ exports.LARGE = LARGE;
|
|
|
14063
14209
|
exports.LCM = LCM;
|
|
14064
14210
|
exports.LEFT = LEFT;
|
|
14065
14211
|
exports.LEN = LEN;
|
|
14212
|
+
exports.LENS = LENS;
|
|
14066
14213
|
exports.LINEST = LINEST;
|
|
14067
14214
|
exports.LN = LN;
|
|
14068
14215
|
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",
|
|
@@ -101,8 +182,8 @@ var FUNCTION_LOCALE = [
|
|
|
101
182
|
p: [
|
|
102
183
|
{
|
|
103
184
|
name: "username",
|
|
104
|
-
detail: "The Farcaster
|
|
105
|
-
example: `miroyato`,
|
|
185
|
+
detail: "The Farcaster username whose followers should be fetched.",
|
|
186
|
+
example: `"miroyato"`,
|
|
106
187
|
require: "m",
|
|
107
188
|
type: "number"
|
|
108
189
|
}
|
|
@@ -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) => {
|
|
@@ -13215,6 +13216,7 @@ if (scanKey === SERVICE_API_KEY.Gnosisscan) chainId = 'gnosis';
|
|
|
13215
13216
|
|
|
13216
13217
|
const fromUsernameToFid = async (username) => {
|
|
13217
13218
|
if(!username) return null
|
|
13219
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Neynar);
|
|
13218
13220
|
const url = `https://api.neynar.com/v2/farcaster/user/search/`;
|
|
13219
13221
|
const res = await fetch(url, {
|
|
13220
13222
|
query: {
|
|
@@ -13231,6 +13233,19 @@ const fromUsernameToFid = async (username) => {
|
|
|
13231
13233
|
return user && user.fid || null;
|
|
13232
13234
|
};
|
|
13233
13235
|
|
|
13236
|
+
// remove nested structure from the response
|
|
13237
|
+
const removeNestedStructure = (json) => {
|
|
13238
|
+
return json.map(item => {
|
|
13239
|
+
const flat = {};
|
|
13240
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13241
|
+
if (typeof value !== 'object' || value === null) {
|
|
13242
|
+
flat[key] = value;
|
|
13243
|
+
}
|
|
13244
|
+
}
|
|
13245
|
+
return flat;
|
|
13246
|
+
});
|
|
13247
|
+
};
|
|
13248
|
+
|
|
13234
13249
|
async function FIREFLY() {
|
|
13235
13250
|
const [platform, contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13236
13251
|
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
@@ -13290,9 +13305,110 @@ async function FIREFLY() {
|
|
|
13290
13305
|
}
|
|
13291
13306
|
}
|
|
13292
13307
|
|
|
13308
|
+
async function LENS() {
|
|
13309
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13310
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13311
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13312
|
+
|
|
13313
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13314
|
+
const headers = { "x-api-key": API_KEY };
|
|
13315
|
+
|
|
13316
|
+
const typeMap = {
|
|
13317
|
+
posts: "lensid",
|
|
13318
|
+
replies: "lenspostid",
|
|
13319
|
+
};
|
|
13320
|
+
|
|
13321
|
+
const platformType = typeMap[contentType];
|
|
13322
|
+
if (!platformType) return `Lens: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13323
|
+
|
|
13324
|
+
const query = identifier
|
|
13325
|
+
.split(",")
|
|
13326
|
+
.map(s => s.trim())
|
|
13327
|
+
.filter(Boolean)
|
|
13328
|
+
.join(",");
|
|
13329
|
+
|
|
13330
|
+
const url = new URL(baseUrl);
|
|
13331
|
+
url.searchParams.set("query", query);
|
|
13332
|
+
url.searchParams.set("type", platformType);
|
|
13333
|
+
url.searchParams.set("start", String(start));
|
|
13334
|
+
url.searchParams.set("end", String(end));
|
|
13335
|
+
|
|
13336
|
+
try {
|
|
13337
|
+
const res = await fetch(url.toString(), { headers });
|
|
13338
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13339
|
+
|
|
13340
|
+
const json = await res.json();
|
|
13341
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13342
|
+
|
|
13343
|
+
return json.data.map(item => {
|
|
13344
|
+
const flat = {};
|
|
13345
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13346
|
+
if (typeof value !== "object" || value === null) {
|
|
13347
|
+
flat[key] = value;
|
|
13348
|
+
}
|
|
13349
|
+
}
|
|
13350
|
+
flat.platform = platform;
|
|
13351
|
+
return flat;
|
|
13352
|
+
});
|
|
13353
|
+
|
|
13354
|
+
} catch (err) {
|
|
13355
|
+
console.error("LENS fetch error:", err);
|
|
13356
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13357
|
+
}
|
|
13358
|
+
}
|
|
13359
|
+
|
|
13360
|
+
async function FARCASTER() {
|
|
13361
|
+
const [contentType, identifier, start = 0, end = 10] = argsToArray(arguments);
|
|
13362
|
+
const API_KEY = window.localStorage.getItem(SERVICE_API_KEY.Firefly);
|
|
13363
|
+
if (!API_KEY) return `${SERVICE_API_KEY.Firefly}${ERROR_MESSAGES_FLAG.MISSING_KEY}`;
|
|
13364
|
+
|
|
13365
|
+
const baseUrl = "https://openapi.firefly.land/v1/fileverse/fetch";
|
|
13366
|
+
const headers = { "x-api-key": API_KEY };
|
|
13367
|
+
|
|
13368
|
+
const typeMap = {
|
|
13369
|
+
posts: "farcasterid",
|
|
13370
|
+
replies: "farcasterpostid",
|
|
13371
|
+
channels: "farcasterchannels",
|
|
13372
|
+
};
|
|
13373
|
+
|
|
13374
|
+
const platformType = typeMap[contentType];
|
|
13375
|
+
if (!platformType) return `Farcaster: ${ERROR_MESSAGES_FLAG.INVALID_TYPE}`;
|
|
13376
|
+
|
|
13377
|
+
const query = identifier
|
|
13378
|
+
.split(",")
|
|
13379
|
+
.map(s => s.trim())
|
|
13380
|
+
.filter(Boolean)
|
|
13381
|
+
.join(",");
|
|
13293
13382
|
|
|
13383
|
+
const url = new URL(baseUrl);
|
|
13384
|
+
url.searchParams.set("query", query);
|
|
13385
|
+
url.searchParams.set("type", platformType);
|
|
13386
|
+
url.searchParams.set("start", String(start));
|
|
13387
|
+
url.searchParams.set("end", String(end));
|
|
13294
13388
|
|
|
13389
|
+
try {
|
|
13390
|
+
const res = await fetch(url.toString(), { headers });
|
|
13391
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
13295
13392
|
|
|
13393
|
+
const json = await res.json();
|
|
13394
|
+
if (!Array.isArray(json?.data)) return [];
|
|
13395
|
+
|
|
13396
|
+
return json.data.map(item => {
|
|
13397
|
+
const flat = {};
|
|
13398
|
+
for (const [key, value] of Object.entries(item)) {
|
|
13399
|
+
if (typeof value !== "object" || value === null) {
|
|
13400
|
+
flat[key] = value;
|
|
13401
|
+
}
|
|
13402
|
+
}
|
|
13403
|
+
flat.platform = platform;
|
|
13404
|
+
return flat;
|
|
13405
|
+
});
|
|
13406
|
+
|
|
13407
|
+
} catch (err) {
|
|
13408
|
+
console.error("Farcaster fetch error:", err);
|
|
13409
|
+
return ERROR_MESSAGES_FLAG.DEFAULT;
|
|
13410
|
+
}
|
|
13411
|
+
}
|
|
13296
13412
|
|
|
13297
13413
|
async function BLOCKSCOUT() {
|
|
13298
13414
|
let [address, type, chain, startTimestamp, endTimestamp, page, offset] = argsToArray(arguments);
|
|
@@ -13808,6 +13924,34 @@ async function SAFE() {
|
|
|
13808
13924
|
}
|
|
13809
13925
|
}
|
|
13810
13926
|
|
|
13927
|
+
async function DEFILLAMA() {
|
|
13928
|
+
let [category, param1] = argsToArray(arguments);
|
|
13929
|
+
const apiKey = window.localStorage.getItem(SERVICE_API_KEY.Defillama);
|
|
13930
|
+
if (!apiKey) return `${SERVICE_API_KEY.Defillama}_MISSING`;
|
|
13931
|
+
const baseUrl = 'https://api.llama.fi/';
|
|
13932
|
+
const categoryList = ['protocols', 'yields', 'dex'];
|
|
13933
|
+
const categoryMap = {
|
|
13934
|
+
[categoryList[0]]: 'protocols',
|
|
13935
|
+
[categoryList[1]]: 'pools',
|
|
13936
|
+
[categoryList[2]]: 'overview/dexs?excludeTotalDataChart=true&excludeTotalDataChartBreakdown=true'
|
|
13937
|
+
};
|
|
13938
|
+
let url = `${baseUrl}/${categoryMap[category]}`;
|
|
13939
|
+
if(categoryMap[category] === categoryList[0] && param1){
|
|
13940
|
+
url += `/${param1}`;
|
|
13941
|
+
}
|
|
13942
|
+
try {
|
|
13943
|
+
const response = await fetch(url);
|
|
13944
|
+
if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
|
|
13945
|
+
let json = await response.json();
|
|
13946
|
+
if(json.length > 300){
|
|
13947
|
+
json = json.slice(0, 300);
|
|
13948
|
+
}
|
|
13949
|
+
return removeNestedStructure(json);
|
|
13950
|
+
} catch (e) {
|
|
13951
|
+
console.log(e);
|
|
13952
|
+
return "ERROR IN FETCHING";
|
|
13953
|
+
}
|
|
13954
|
+
}
|
|
13811
13955
|
function POLYMARKET() {
|
|
13812
13956
|
return "Coming Soon"
|
|
13813
13957
|
}
|
|
@@ -13839,4 +13983,4 @@ function POLYMARKET() {
|
|
|
13839
13983
|
|
|
13840
13984
|
const utils = { errors, symbols, date };
|
|
13841
13985
|
|
|
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 };
|
|
13986
|
+
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
|
*
|