@fileverse-dev/formulajs 4.4.11-mod-14 → 4.4.11-mod-15

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/cjs/index.cjs CHANGED
@@ -12951,7 +12951,9 @@ function SWITCH() {
12951
12951
 
12952
12952
  const SERVICE_API_KEY = {
12953
12953
  Etherscan: "ETHERSCAN_API_KEY",
12954
- Coingecko: "COINGECKO_API_KEY"
12954
+ Coingecko: "COINGECKO_API_KEY",
12955
+ Gnosisscan: 'GNOSISSSCAN',
12956
+ BASESCAN: 'Basescan'
12955
12957
  };
12956
12958
 
12957
12959
  async function ETHERSCAN(address, page, offset) {
@@ -13013,6 +13015,59 @@ async function GETPRICE(token, vs_currencies) {
13013
13015
  }
13014
13016
  }
13015
13017
 
13018
+ async function OX(address, categories, chain, startTime, endTime) {
13019
+ const API_KEYS = {
13020
+ ethereum: window.localStorage.getItem(SERVICE_API_KEY.Etherscan),
13021
+ gnosis: window.localStorage.getItem(SERVICE_API_KEY.Gnosisscan),
13022
+ base: window.localStorage.getItem(SERVICE_API_KEY.Basescan),
13023
+ };
13024
+
13025
+ const CHAIN_API_BASE = {
13026
+ ethereum: 'https://api.etherscan.io/api',
13027
+ gnosis: 'https://api.gnosisscan.io/api',
13028
+ base: 'https://api.basescan.org/api',
13029
+ };
13030
+
13031
+ const apiKey = API_KEYS[chain];
13032
+ const baseUrl = CHAIN_API_BASE[chain];
13033
+
13034
+ const timeToBlock = async (timestamp) => {
13035
+ try {
13036
+ const url = `${baseUrl}?module=block&action=getblocknobytime&timestamp=${timestamp}&closest=before&apikey=${apiKey}`;
13037
+ const res = await fetch(url);
13038
+ const json = await res.json();
13039
+ return parseInt(json.result);
13040
+ } catch {
13041
+ return 0;
13042
+ }
13043
+ };
13044
+
13045
+ const startBlock = await timeToBlock(startTime);
13046
+ const endBlock = await timeToBlock(endTime);
13047
+
13048
+ let action = '';
13049
+ if (categories === 'txns') action = 'txlist';
13050
+ else if (categories === 'balances') action = 'balance';
13051
+ else if (categories === 'portfolio') action = 'tokentx';
13052
+
13053
+ let url = `${baseUrl}?module=account&action=${action}&address=${address}&startblock=${startBlock}&endblock=${endBlock}&sort=asc&apikey=${apiKey}`;
13054
+
13055
+ try {
13056
+ const response = await fetch(url);
13057
+ if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
13058
+ const json = await response.json();
13059
+ if (json.result?.includes?.("Invalid API Key")) {
13060
+ return `${SERVICE_API_KEY[chain.charAt(0).toUpperCase() + chain.slice(1)]}_MISSING`;
13061
+ }
13062
+
13063
+ console.log({ANSWER: json.result });
13064
+ return json.result;
13065
+ } catch (e) {
13066
+ return "ERROR IN FETCHING";
13067
+ }
13068
+ }
13069
+
13070
+
13016
13071
  async function FLVURL(token, vs_currencies) {
13017
13072
  return new Promise((resolve) => {
13018
13073
  setTimeout(() => {
@@ -13292,6 +13347,7 @@ exports.OCT2DEC = OCT2DEC;
13292
13347
  exports.OCT2HEX = OCT2HEX;
13293
13348
  exports.ODD = ODD;
13294
13349
  exports.OR = OR;
13350
+ exports.OX = OX;
13295
13351
  exports.PDURATION = PDURATION;
13296
13352
  exports.PEARSON = PEARSON;
13297
13353
  exports.PERCENTILE = PERCENTILE;
@@ -1,7 +1,9 @@
1
1
  // src/crypto-constants.js
2
2
  var SERVICE_API_KEY = {
3
3
  Etherscan: "ETHERSCAN_API_KEY",
4
- Coingecko: "COINGECKO_API_KEY"
4
+ Coingecko: "COINGECKO_API_KEY",
5
+ Gnosisscan: "GNOSISSSCAN",
6
+ BASESCAN: "Basescan"
5
7
  };
6
8
  var FUNCTION_LOCALE = [
7
9
  {
@@ -38,6 +40,51 @@ var FUNCTION_LOCALE = [
38
40
  }
39
41
  ]
40
42
  },
43
+ {
44
+ API_KEY: SERVICE_API_KEY.Etherscan,
45
+ LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/ox.png",
46
+ // Replace with actual logo if available
47
+ BRAND_COLOR: "#E5E5E5",
48
+ BRAND_SECONDARY_COLOR: "#1A1A1A",
49
+ n: "OX",
50
+ t: 20,
51
+ d: "Fetches address data like transactions, balances, or portfolio info from multiple supported chains.",
52
+ a: "Dynamically queries blockchain data such as transactions, balances, or token portfolio by resolving time ranges to block ranges.",
53
+ p: [
54
+ {
55
+ name: "address",
56
+ detail: "The address to query, in hexadecimal format.",
57
+ example: `"0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC"`,
58
+ require: "m"
59
+ },
60
+ {
61
+ name: "categories",
62
+ detail: `Type of data to fetch. Supported values: "txns", "balances", "portfolio".`,
63
+ example: `"txns"`,
64
+ require: "m"
65
+ },
66
+ {
67
+ name: "chain",
68
+ detail: `Blockchain network to query. Supported values: "ethereum", "gnosis", "base".`,
69
+ example: `"ethereum"`,
70
+ require: "m"
71
+ },
72
+ {
73
+ name: "startTime",
74
+ detail: "Start time in UNIX timestamp (seconds). Will be converted to a starting block.",
75
+ example: "1680300000",
76
+ require: "m",
77
+ type: "rangenumber"
78
+ },
79
+ {
80
+ name: "endTime",
81
+ detail: "End time in UNIX timestamp (seconds). Will be converted to an ending block.",
82
+ example: "1680900000",
83
+ require: "m",
84
+ type: "rangenumber"
85
+ }
86
+ ]
87
+ },
41
88
  {
42
89
  n: "GETPRICE",
43
90
  t: 20,
package/lib/esm/index.mjs CHANGED
@@ -12949,7 +12949,9 @@ function SWITCH() {
12949
12949
 
12950
12950
  const SERVICE_API_KEY = {
12951
12951
  Etherscan: "ETHERSCAN_API_KEY",
12952
- Coingecko: "COINGECKO_API_KEY"
12952
+ Coingecko: "COINGECKO_API_KEY",
12953
+ Gnosisscan: 'GNOSISSSCAN',
12954
+ BASESCAN: 'Basescan'
12953
12955
  };
12954
12956
 
12955
12957
  async function ETHERSCAN(address, page, offset) {
@@ -13011,6 +13013,59 @@ async function GETPRICE(token, vs_currencies) {
13011
13013
  }
13012
13014
  }
13013
13015
 
13016
+ async function OX(address, categories, chain, startTime, endTime) {
13017
+ const API_KEYS = {
13018
+ ethereum: window.localStorage.getItem(SERVICE_API_KEY.Etherscan),
13019
+ gnosis: window.localStorage.getItem(SERVICE_API_KEY.Gnosisscan),
13020
+ base: window.localStorage.getItem(SERVICE_API_KEY.Basescan),
13021
+ };
13022
+
13023
+ const CHAIN_API_BASE = {
13024
+ ethereum: 'https://api.etherscan.io/api',
13025
+ gnosis: 'https://api.gnosisscan.io/api',
13026
+ base: 'https://api.basescan.org/api',
13027
+ };
13028
+
13029
+ const apiKey = API_KEYS[chain];
13030
+ const baseUrl = CHAIN_API_BASE[chain];
13031
+
13032
+ const timeToBlock = async (timestamp) => {
13033
+ try {
13034
+ const url = `${baseUrl}?module=block&action=getblocknobytime&timestamp=${timestamp}&closest=before&apikey=${apiKey}`;
13035
+ const res = await fetch(url);
13036
+ const json = await res.json();
13037
+ return parseInt(json.result);
13038
+ } catch {
13039
+ return 0;
13040
+ }
13041
+ };
13042
+
13043
+ const startBlock = await timeToBlock(startTime);
13044
+ const endBlock = await timeToBlock(endTime);
13045
+
13046
+ let action = '';
13047
+ if (categories === 'txns') action = 'txlist';
13048
+ else if (categories === 'balances') action = 'balance';
13049
+ else if (categories === 'portfolio') action = 'tokentx';
13050
+
13051
+ let url = `${baseUrl}?module=account&action=${action}&address=${address}&startblock=${startBlock}&endblock=${endBlock}&sort=asc&apikey=${apiKey}`;
13052
+
13053
+ try {
13054
+ const response = await fetch(url);
13055
+ if (!response.ok) throw new Error(`HTTP error! Status: ${response.status}`);
13056
+ const json = await response.json();
13057
+ if (json.result?.includes?.("Invalid API Key")) {
13058
+ return `${SERVICE_API_KEY[chain.charAt(0).toUpperCase() + chain.slice(1)]}_MISSING`;
13059
+ }
13060
+
13061
+ console.log({ANSWER: json.result });
13062
+ return json.result;
13063
+ } catch (e) {
13064
+ return "ERROR IN FETCHING";
13065
+ }
13066
+ }
13067
+
13068
+
13014
13069
  async function FLVURL(token, vs_currencies) {
13015
13070
  return new Promise((resolve) => {
13016
13071
  setTimeout(() => {
@@ -13021,4 +13076,4 @@ async function FLVURL(token, vs_currencies) {
13021
13076
 
13022
13077
  const utils = { errors, symbols, date };
13023
13078
 
13024
- export { ABS, ACCRINT, ACOS, ACOSH, ACOT, ACOTH, AGGREGATE, AND, ARABIC, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, AVERAGEA, AVERAGEIF, AVERAGEIFS, BASE, BESSELI, BESSELJ, BESSELK, BESSELY, BETA, BETADIST, BETAINV, BIN2DEC, BIN2HEX, BIN2OCT, BINOM, BINOMDIST, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CEILING, CEILINGMATH, CEILINGPRECISE, CHAR, CHIDIST, CHIDISTRT, CHIINV, CHIINVRT, CHISQ, CHITEST, CHOOSE, CLEAN, CODE, 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, EOMONTH, ERF, ERFC, ERFCPRECISE, ERFPRECISE, ERROR, ETHERSCAN, EVEN, EXACT, EXP, EXPON, EXPONDIST, F, FACT, FACTDOUBLE, FALSE, FDIST, FDISTRT, FIND, FINV, FINVRT, FISHER, FISHERINV, FIXED, FLOOR, FLOORMATH, FLOORPRECISE, FLVURL, FORECAST, FREQUENCY, FTEST, FV, FVSCHEDULE, GAMMA, GAMMADIST, GAMMAINV, GAMMALN, GAMMALNPRECISE, GAUSS, GCD, GEOMEAN, GESTEP, GETPRICE, 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, 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, MID, MIN, MINA, MINIFS, MINUTE, MIRR, MMULT, MOD, MODE, MODEMULT, MODESNGL, MONTH, MROUND, MULTINOMIAL, MUNIT, N, NA, NEGBINOM, NEGBINOMDIST, NETWORKDAYS, NETWORKDAYSINTL, 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, POISSON, POISSONDIST, POWER, PPMT, PRICEDISC, PROB, PRODUCT, PROPER, PV, QUARTILE, QUARTILEEXC, QUARTILEINC, QUOTIENT, RADIANS, RAND, RANDBETWEEN, RANK, RANKAVG, RANKEQ, RATE, REPLACE, REPT, RIGHT, ROMAN, ROUND, ROUNDDOWN, ROUNDUP, ROW, ROWS, RRI, RSQ, 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, 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, XIRR, XNPV, XOR, YEAR, YEARFRAC, Z, ZTEST, utils };
13079
+ export { ABS, ACCRINT, ACOS, ACOSH, ACOT, ACOTH, AGGREGATE, AND, ARABIC, ASIN, ASINH, ATAN, ATAN2, ATANH, AVEDEV, AVERAGE, AVERAGEA, AVERAGEIF, AVERAGEIFS, BASE, BESSELI, BESSELJ, BESSELK, BESSELY, BETA, BETADIST, BETAINV, BIN2DEC, BIN2HEX, BIN2OCT, BINOM, BINOMDIST, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CEILING, CEILINGMATH, CEILINGPRECISE, CHAR, CHIDIST, CHIDISTRT, CHIINV, CHIINVRT, CHISQ, CHITEST, CHOOSE, CLEAN, CODE, 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, EOMONTH, ERF, ERFC, ERFCPRECISE, ERFPRECISE, ERROR, ETHERSCAN, EVEN, EXACT, EXP, EXPON, EXPONDIST, F, FACT, FACTDOUBLE, FALSE, FDIST, FDISTRT, FIND, FINV, FINVRT, FISHER, FISHERINV, FIXED, FLOOR, FLOORMATH, FLOORPRECISE, FLVURL, FORECAST, FREQUENCY, FTEST, FV, FVSCHEDULE, GAMMA, GAMMADIST, GAMMAINV, GAMMALN, GAMMALNPRECISE, GAUSS, GCD, GEOMEAN, GESTEP, GETPRICE, 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, 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, MID, MIN, MINA, MINIFS, MINUTE, MIRR, MMULT, MOD, MODE, MODEMULT, MODESNGL, MONTH, MROUND, MULTINOMIAL, MUNIT, N, NA, NEGBINOM, NEGBINOMDIST, NETWORKDAYS, NETWORKDAYSINTL, NOMINAL, NORM, NORMDIST, NORMINV, NORMSDIST, NORMSINV, NOT, NOW, NPER, NPV, NUMBERVALUE, OCT2BIN, OCT2DEC, OCT2HEX, ODD, OR, OX, PDURATION, PEARSON, PERCENTILE, PERCENTILEEXC, PERCENTILEINC, PERCENTRANK, PERCENTRANKEXC, PERCENTRANKINC, PERMUT, PERMUTATIONA, PHI, PI, PMT, POISSON, POISSONDIST, POWER, PPMT, PRICEDISC, PROB, PRODUCT, PROPER, PV, QUARTILE, QUARTILEEXC, QUARTILEINC, QUOTIENT, RADIANS, RAND, RANDBETWEEN, RANK, RANKAVG, RANKEQ, RATE, REPLACE, REPT, RIGHT, ROMAN, ROUND, ROUNDDOWN, ROUNDUP, ROW, ROWS, RRI, RSQ, 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, 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, XIRR, XNPV, XOR, YEAR, YEARFRAC, Z, ZTEST, utils };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fileverse-dev/formulajs",
3
- "version": "4.4.11-mod-14",
3
+ "version": "4.4.11-mod-15",
4
4
  "description": "JavaScript implementation of most Microsoft Excel formula functions",
5
5
  "author": "Formulajs",
6
6
  "publishConfig": {
@@ -3001,6 +3001,7 @@ export function ODD(number: any): number | Error;
3001
3001
  * @returns
3002
3002
  */
3003
3003
  export function OR(...args: any[]): any;
3004
+ export function OX(address: any, categories: any, chain: any, startTime: any, endTime: any): Promise<any>;
3004
3005
  /**
3005
3006
  * Returns the number of periods required by an investment to reach a specified value.
3006
3007
  *
@@ -3001,6 +3001,7 @@ export function ODD(number: any): number | Error;
3001
3001
  * @returns
3002
3002
  */
3003
3003
  export function OR(...args: any[]): any;
3004
+ export function OX(address: any, categories: any, chain: any, startTime: any, endTime: any): Promise<any>;
3004
3005
  /**
3005
3006
  * Returns the number of periods required by an investment to reach a specified value.
3006
3007
  *