var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require() {
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
  // If the importer is in node compatibility mode or this is not an ESM
  // file that has been converted to a CommonJS file using a Babel-
  // compatible transform (i.e. "__esModule" has not been set), then set
  // "default" to the CommonJS "module.exports" for node compatibility.
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
  mod
));

// node_modules/jwt-decode/lib/atob.js
var require_atob = __commonJS({
  "node_modules/jwt-decode/lib/atob.js"(exports, module) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function InvalidCharacterError(message) {
      this.message = message;
    }
    InvalidCharacterError.prototype = new Error();
    InvalidCharacterError.prototype.name = "InvalidCharacterError";
    function polyfill(input) {
      var str = String(input).replace(/=+$/, "");
      if (str.length % 4 == 1) {
        throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded.");
      }
      for (
        var bc = 0, bs, buffer, idx = 0, output = "";
        // get next character
        buffer = str.charAt(idx++);
        // character found in table? initialize bit storage and add its ascii value;
        ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, // and if not first of each 4 characters,
        // convert the first 8 bits to one ascii character
        bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
      ) {
        buffer = chars.indexOf(buffer);
      }
      return output;
    }
    module.exports = typeof window !== "undefined" && window.atob && window.atob.bind(window) || polyfill;
  }
});

// node_modules/jwt-decode/lib/base64_url_decode.js
var require_base64_url_decode = __commonJS({
  "node_modules/jwt-decode/lib/base64_url_decode.js"(exports, module) {
    var atob = require_atob();
    function b64DecodeUnicode(str) {
      return decodeURIComponent(atob(str).replace(/(.)/g, function(m, p) {
        var code = p.charCodeAt(0).toString(16).toUpperCase();
        if (code.length < 2) {
          code = "0" + code;
        }
        return "%" + code;
      }));
    }
    module.exports = function(str) {
      var output = str.replace(/-/g, "+").replace(/_/g, "/");
      switch (output.length % 4) {
        case 0:
          break;
        case 2:
          output += "==";
          break;
        case 3:
          output += "=";
          break;
        default:
          throw "Illegal base64url string!";
      }
      try {
        return b64DecodeUnicode(output);
      } catch (err) {
        return atob(output);
      }
    };
  }
});

// node_modules/jwt-decode/lib/index.js
var require_lib = __commonJS({
  "node_modules/jwt-decode/lib/index.js"(exports, module) {
    "use strict";
    var base64_url_decode = require_base64_url_decode();
    function InvalidTokenError(message) {
      this.message = message;
    }
    InvalidTokenError.prototype = new Error();
    InvalidTokenError.prototype.name = "InvalidTokenError";
    module.exports = function(token, options) {
      if (typeof token !== "string") {
        throw new InvalidTokenError("Invalid token specified");
      }
      options = options || {};
      var pos = options.header === true ? 0 : 1;
      try {
        return JSON.parse(base64_url_decode(token.split(".")[pos]));
      } catch (e) {
        throw new InvalidTokenError("Invalid token specified: " + e.message);
      }
    };
    module.exports.InvalidTokenError = InvalidTokenError;
  }
});

// node_modules/jwt-check-expiration/src/index.js
var require_src = __commonJS({
  "node_modules/jwt-check-expiration/src/index.js"(exports, module) {
    var jwtDecode = require_lib();
    var isJwtExpired2 = (token) => {
      if (typeof token !== "string" || !token) throw new Error("Invalid token provided");
      let isJwtExpired3 = false;
      const { exp } = jwtDecode(token);
      const currentTime = (/* @__PURE__ */ new Date()).getTime() / 1e3;
      if (currentTime > exp) isJwtExpired3 = true;
      return isJwtExpired3;
    };
    module.exports.isJwtExpired = isJwtExpired2;
  }
});

// src/utils/constants.js
var CHAIN_ID_MAP = {
  ethereum: 1,
  gnosis: 100,
  base: 8453
};
var BLOCKSCOUT_CHAINS_MAP = {
  ethereum: "https://eth.blockscout.com",
  gnosis: "https://gnosis.blockscout.com",
  arbitrum: "https://arbitrum.blockscout.com",
  optimism: "https://optimism.blockscout.com",
  soneium: "https://soneium.blockscout.com",
  unichain: "https://unichain.blockscout.com"
};
var SAFE_CHAIN_MAP = {
  ethereum: "eth",
  gnosis: "gno"
};
var ERROR_MESSAGES_FLAG = {
  INVALID_API_KEY: "INVALID_API_KEY",
  RATE_LIMIT: "RATE_LIMIT",
  DEFAULT: "DEFAULT",
  MISSING_KEY: "MISSING_KEY",
  INVALID_PARAM: "INVALID_PARAM",
  NETWORK_ERROR: "NETWORK_ERROR",
  ENS: "ENS"
};
var UTILITY = {
  ALCHEMY_API_KEY: "ALCHEMY_API_KEY"
};
var MAX_PAGE_LIMIT = 250;
var SERVICES_API_KEY = {
  Etherscan: "Etherscan",
  Coingecko: "Coingecko",
  Safe: "Safe",
  Basescan: "Basescan",
  Gnosisscan: "Gnosisscan",
  Firefly: "Firefly",
  GnosisPay: "GnosisPay",
  Neynar: "Neynar",
  Defillama: "Defillama",
  DuneSim: "DuneSim"
};

// src/crypto/eoa/metadata.js
var EOA_metadata = {
  API_KEY: SERVICES_API_KEY.Etherscan,
  LOGO: "https://raw.githubusercontent.com/ethereum/ethereum-org/master/dist/favicon.ico",
  BRAND_COLOR: "#F6F7F8",
  BRAND_SECONDARY_COLOR: "#21325B",
  n: "EOA",
  t: 20,
  d: "Fetches address data like transactions, balances, or portfolio info from multiple supported chains.",
  a: "Dynamically queries blockchain data such as transactions and balances by resolving time ranges to block ranges and supporting pagination.",
  p: [
    {
      name: "addresses",
      detail: "One or more addresses (comma-separated) to query.",
      example: `"vitalik.eth"`,
      require: "m",
      type: "string"
    },
    {
      name: "categories",
      detail: `Type of data to fetch. Supported values: "txns", "balance".`,
      example: `"txns"`,
      require: "m",
      type: "string"
    },
    {
      name: "chain",
      detail: `Blockchain network(s) to query. Supported values: "ethereum", "gnosis", "base". Accepts comma-separated values.`,
      example: `"ethereum"`,
      require: "m",
      type: "string"
    },
    {
      name: "startTime",
      detail: "Used to calculate starting block for transaction queries.",
      example: `"01/01/2024"`,
      require: "m",
      type: "string"
    },
    {
      name: "endTime",
      detail: "Used to calculate ending block for transaction queries.",
      example: `"01/06/2024"`,
      require: "m",
      type: "string"
    },
    {
      name: "page",
      detail: "The page number for paginated transaction results. Only used when category is 'txns'. Default is 1",
      example: "1",
      require: "o",
      type: "number"
    },
    {
      name: "offset",
      detail: "The number of results to return per page (limit). Only used when category is 'txns'. Default is 10",
      example: "10",
      require: "o",
      type: "number"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"address,blockNumber"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [{
    title: "EOA",
    argumentString: '"vitalik.eth", "txns", "ethereum", "01/01/2023", "01/05/2024", 1, 2',
    description: "returns the transaction history for the address vitalik.eth on the Ethereum blockchain between January 1, 2023 and January 5, 2024, returning page 1 with 2 transactions per page."
  }, {
    title: "EOA",
    argumentString: '"vitalik.eth", "balance", "gnosis"',
    description: "returns the balance for the address vitalik.eth on the Gnosis blockchain."
  }]
};

// src/crypto/uniswap/metadata.js
var UNISWAP_metadata = {
  LOGO: "https://app.uniswap.org/favicon.png",
  BRAND_COLOR: "#fef5fc",
  BRAND_SECONDARY_COLOR: "#f50db4",
  n: "UNISWAP",
  t: 20,
  d: "Returns Uniswap pools and tokens data",
  a: "Retrieves Uniswap data for a given chain and address from Uniswap",
  p: [
    {
      name: "graphType",
      detail: "Graph type to Query. Can be 'v3', 'v3-raw'",
      example: `"v3"`,
      require: "m",
      type: "string"
    },
    {
      name: "category",
      detail: "Query type for the data. Can be 'tokens', 'markets'",
      example: `"tokens"`,
      require: "m",
      type: "string"
    },
    {
      name: "param1",
      detail: "Token Contract Address for market or Token symbol ",
      example: `"eth"`,
      require: "m",
      type: "string"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"id,address"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "UNISWAP",
      argumentString: '"v3", "tokens", "eth"',
      description: "returns data for the ETH token from Uniswap V3."
    },
    {
      title: "UNISWAP",
      argumentString: '"v3-raw", "markets", "0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8"',
      description: "returns data for the Uniswap V3 market with the specified contract address."
    }
  ]
};

// src/crypto/coingecko/metadata.js
var COINGECKO_metadata = {
  LOGO: "https://files.readme.io/06394e687778e238a6cd43de6e1d7d339043aa50054703f64606369352ef1864-VariantCG-Symbol-Color.png",
  BRAND_COLOR: "#f8fdf8",
  BRAND_SECONDARY_COLOR: "#4bc63d",
  n: "COINGECKO",
  t: 20,
  API_KEY: SERVICES_API_KEY.Coingecko,
  d: "Query crypto prices, ecosystem market data, stablecoins, or derivatives from CoinGecko.",
  a: 'Supports querying: "price" for specific tokens "market" for ecosystem categories (ETH, BASE, SOL, GNOSIS, HYPERLIQUID, BITCOIN, PUMP)\n- "stablecoins" for stablecoin categories like "crypto-backed-stablecoin"\n- "derivatives" globally or per exchange.\nPagination is supported for all except single-exchange derivatives.',
  p: [
    {
      name: "category",
      detail: 'Query type: "price", "market", "stablecoins", or "derivatives".',
      example: `"stablecoins"`,
      require: "m"
    },
    {
      name: "param1",
      detail: `If "price" then - eg. "BTC", "ETH", OR any token on coingecko
If "market": one of "all", "base", "meme", "aiagents", "bitcoin", "ethereum", "hyperliquid", "pump", "solana".
If "stablecoins": one of "all", "yield-bearing-stablecoins", "crypto-backed-stablecoin".
If "derivatives": exchange name (e.g., "binance_futures", "hyperliquid", "weex-futures", "bybit" ).`,
      example: `"yield-bearing-stablecoins"`,
      require: "m"
    },
    {
      name: "param2",
      detail: `If "market" and "stablecoins" then eg. "1h", "24h", "7d", "14d", "30d", "200d", "1y".`,
      example: `"1h,24h,7d"`,
      require: "o"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"id,symbol"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "COINGECKO",
      argumentString: '"stablecoins", "yield-bearing-stablecoins", "1h,24h,7d"',
      description: "returns the yield-bearing stablecoins with percentage changes over 1 hour, 24 hours, and 7 days."
    },
    {
      title: "COINGECKO",
      argumentString: '"derivatives", "binance_futures"',
      description: "returns the derivatives data from the Binance Futures exchange."
    }
  ]
};

// src/crypto/defillama/metadata.js
var DEFILLAMA_metadata = {
  API_KEY: SERVICES_API_KEY.Defillama,
  LOGO: "https://defillama.com/favicon.ico",
  BRAND_COLOR: "#f8f5fc",
  BRAND_SECONDARY_COLOR: "#855dcd",
  n: "DEFILLAMA",
  t: 20,
  d: "returns content from Defillama.",
  a: "Retrieves data from Defillama.",
  p: [
    {
      name: "category",
      detail: "Type of content to fetch. Supports 'protocols', 'yields', 'dex', or 'fees'.",
      example: `"protocols"`,
      require: "m",
      type: "string"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"name,address"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [{
    title: "DEFILLAMA",
    argumentString: '"protocols"',
    description: "returns a list of DeFi protocols from Defillama."
  }, {
    title: "DEFILLAMA",
    argumentString: '"dex"',
    description: "returns decentralized exchange (DEX) data from Defillama."
  }]
};

// src/crypto/base/metadata.js
var BASE_metadata = {
  API_KEY: SERVICES_API_KEY.Basescan,
  LOGO: "https://2064089921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FevP3L0cUvP9xmRefuzCm%2Fuploads%2F2K1pvFsE7JAfcI3LAxYl%2Fbase-logo-in-blue.webp?alt=media&token=32c80439-dbdc-432a-b199-220e012efc3c",
  BRAND_COLOR: "#f1f5ff",
  BRAND_SECONDARY_COLOR: "#2752ff",
  n: "BASE",
  t: 20,
  d: "Fetches Base network data via Basescan: native txns, ERC-20 transfers, ERC-721 transfers, and gas metrics.",
  a: "Pulls on-chain activity for Base (chainid 8453) using Basescan\u2019s API \u2014 supports full tx history, token/NFT transfers, gas prices, and pagination.",
  p: [
    {
      name: "type",
      detail: "Data category: 'all-txns' | 'token-txns' | 'nft-txns' | 'gas'.",
      example: `"token-txns"`,
      require: "m",
      type: "string"
    },
    {
      name: "address",
      detail: "Target wallet address (only required for txns, token, and nft queries). Not needed for 'gas'.",
      example: `"0x7FD624f3f97A7dd36195E8379F28dB6147C270ff"`,
      require: "o",
      type: "string"
    },
    {
      name: "startDate",
      detail: "Start date (used to resolve block range). Optional, only applies to txns.",
      example: `"01/01/2024"`,
      require: "o",
      type: "string"
    },
    {
      name: "endDate",
      detail: "End date (used to resolve block range). Optional, only applies to txns.",
      example: `"07/07/2024"`,
      require: "o",
      type: "string"
    },
    {
      name: "page",
      detail: "Page number for paginated results. Only applies to txns/token/nft queries.",
      example: `1`,
      require: "o",
      type: "number"
    },
    {
      name: "offset",
      detail: "Number of items per page (limit). Only applies to txns/token/nft queries.",
      example: `2`,
      require: "o",
      type: "number"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"blockNumber,timeStamp"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "BASE",
      argumentString: '"token-txns", "0x7FD624f3f97A7dd36195E8379F28dB6147C270ff", "01/01/2024", "07/07/2024", 1, 2',
      description: "returns list ofERC-20 token transfer history for the specified address on the Base network between January 1, 2024 and July 7, 2024, returning page 1 with 2 results per page."
    },
    {
      title: "BASE",
      argumentString: '"gas"',
      description: "returns gas price metrics for the Base network."
    }
  ]
};

// src/crypto/gnosis/metadata.js
var GNOSIS_metadata = {
  API_KEY: SERVICES_API_KEY.Gnosisscan,
  LOGO: "https://gnosisscan.io/assets/generic/html/favicon-light.ico",
  BRAND_COLOR: "#f6f7f6",
  BRAND_SECONDARY_COLOR: "#133629",
  n: "GNOSIS",
  t: 20,
  d: "Fetches Gnosis Chain data via Gnosisscan: native transactions, ERC-20 token transfers, ERC-721 NFT transfers, and gas metrics.",
  a: "Queries Gnosis Chain (chainid 100) through Gnosisscan\u2019s API to return transaction history, token/NFT transfers, or gas price information. Supports pagination and time-based filtering for transaction types.",
  p: [
    {
      name: "type",
      detail: "Data category to fetch. Options: 'all-txns', 'token-txns', 'nft-txns', or 'gas'.",
      example: `"nft-txns"`,
      require: "m",
      type: "string"
    },
    {
      name: "address",
      detail: "Wallet address to query. Required for all types except 'gas'.",
      example: `"0x90830Ed558f12D826370DC52E9D87947A7F18De9"`,
      require: "o",
      type: "string"
    },
    {
      name: "startDate",
      detail: "Used to resolve starting block for txns.",
      example: `"01/01/2024"`,
      require: "o",
      type: "string"
    },
    {
      name: "endDate",
      detail: "Used to resolve ending block for txns.",
      example: `"14/06/2025"`,
      require: "o",
      type: "string"
    },
    {
      name: "page",
      detail: "Page number for paginated transaction results. Applies only to 'txns', 'token-txns', and 'nft-txns'.",
      example: `1`,
      require: "o",
      type: "number"
    },
    {
      name: "offset",
      detail: "Number of results per page (limit). Applies only to 'txns', 'token-txns', and 'nft-txns'.",
      example: `50`,
      require: "o",
      type: "number"
    }
  ],
  examples: [{
    title: "GNOSIS",
    argumentString: '"nft-txns", "0x90830Ed558f12D826370DC52E9D87947A7F18De9", "01/01/2024", "14/06/2025", 1, 50',
    description: "returns NFT transaction history for the address 0x90830Ed558f12D826370DC52E9D87947A7F18De9 on the Gnosis Chain between January 1, 2024 and June 14, 2025, returning page 1 with 50 transactions per page."
  }, {
    title: "GNOSIS",
    argumentString: '"gas"',
    description: "returns current gas price metrics for the Gnosis Chain."
  }]
};

// src/crypto/etherscan/metadata.js
var ETHERSCAN_metadata = {
  API_KEY: SERVICES_API_KEY.Etherscan,
  LOGO: "https://etherscan.io/images/favicon3.ico",
  BRAND_COLOR: "#F6F7F8",
  BRAND_SECONDARY_COLOR: "#21325B",
  n: "ETHERSCAN",
  t: 20,
  d: "Returns blockchain transaction history for the given address",
  a: "Retrieves blockchain data for a given chain and address from Etherscan, including txns, token/nft transfers, and gas metrics.",
  p: [
    {
      name: "type",
      detail: "The type of data to retrieve. Can be 'all-txns', 'token-txns', 'nft-txns', or 'gas'.",
      example: `"all-txns"`,
      require: "m",
      type: "string"
    },
    {
      name: "chain",
      detail: "The chain name (e.g. 'ethereum', 'base', 'gnosis').",
      example: `"ethereum"`,
      require: "m",
      type: "string"
    },
    {
      name: "address",
      detail: "Wallet address / Ens name to query",
      example: `"vitalik.eth"`,
      require: "m",
      type: "string"
    },
    {
      name: "startDate",
      detail: "Used to filter block range.",
      example: `"01/01/2024"`,
      require: "o",
      type: "string"
    },
    {
      name: "endDate",
      detail: "Used to filter block range.",
      example: `"01/07/2025"`,
      require: "o",
      type: "string"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"blockNumber,timeStamp"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "ETHERSCAN",
      argumentString: '"all-txns", "ethereum", "vitalik.eth"',
      description: "returns the complete transaction history for the address vitalik.eth on the Ethereum blockchain."
    },
    {
      title: "ETHERSCAN",
      argumentString: '"token-txns", "gnosis", "vitalik.eth", "01/01/2024", "01/05/2024"',
      description: "returns the token transaction history for the address vitalik.eth on the Gnosis blockchain between January 1, 2024 and January 5, 2024."
    }
  ]
};

// src/crypto/pnl/metadata.js
var PNL_metadata = {
  n: "PNL",
  t: 20,
  d: "Subtract each element from A column from B column and return the total sum.",
  a: "Returns the total of A - B element-wise subtraction across two ranges.",
  p: [
    {
      name: "A",
      detail: "The column or array of values to subtract from B (e.g. cost).",
      example: "A1:A10",
      require: "m",
      repeat: "n",
      type: "range"
    },
    {
      name: "B",
      detail: "The column or array of values to subtract A from (e.g. revenue).",
      example: "B1:B10",
      require: "m",
      repeat: "n",
      type: "range"
    }
  ],
  examples: [{
    title: "PNL",
    argumentString: "A1:A10, B1:B10",
    description: "returns the total profit or loss by subtracting the costs in range A1:A10 from the revenues in range B1:B10."
  }, {
    title: "PNL",
    argumentString: '"{100, 200, 150}", "{250, 300, 200}"',
    description: "returns the total profit or loss by subtracting the costs {100, 200, 150} from the revenues {250, 300, 200}."
  }]
};

// src/crypto/safe/metadata.js
var SAFE_metadata = {
  API_KEY: SERVICES_API_KEY.Safe,
  LOGO: "https://safe-transaction-mainnet.safe.global/static/safe/favicon.png",
  BRAND_COLOR: "#ebf9f3",
  BRAND_SECONDARY_COLOR: "#00B460",
  n: "SAFE",
  t: 20,
  d: "Query the list of transactions performed by a Safe address, with optional pagination.",
  a: "Query the list of transactions performed by a Safe address, with optional pagination.",
  p: [
    {
      name: "address",
      detail: "The address to query, in hexadecimal format.",
      example: `"0xe9A6378d8FD4983C2999DB0735f258397E8C2253"`,
      require: "m"
    },
    {
      name: "utility",
      detail: "The utility to query, supported values: 'txns'.",
      example: `"txns"`,
      require: "m"
    },
    {
      name: "chain",
      detail: "The chain to query, supported values: 'ethereum', 'gnosis'.",
      example: `"gnosis"`,
      require: "m"
    },
    {
      name: "limit",
      detail: "The number of transactions to return, default is 100.",
      example: `10`,
      require: "o",
      repeat: "n"
    },
    {
      name: "offset",
      detail: "The number of transactions to skip, default is 0.",
      example: `0`,
      require: "o",
      repeat: "n"
    }
  ],
  examples: [{
    title: "SAFE",
    argumentString: '"0xe9A6378d8FD4983C2999DB0735f258397E8C2253", "txns", "gnosis", 10, 0',
    description: "returns the last 10 transactions for the specified Safe address on the Gnosis chain."
  }, {
    title: "SAFE",
    argumentString: '"0x1234567890abcdef1234567890abcdef12345678", "txns", "ethereum"',
    description: "returns the last 100 transactions for the specified Safe address on the Ethereum chain."
  }]
};

// src/crypto/blockscout/metadata.js
var BLOCKSCOUT_metadata = {
  LOGO: "https://cdn.prod.website-files.com/65f94dfd53db8b337c808067/68485baa72714ae58f350ce2_bs-logo.png",
  BRAND_COLOR: "#f8f8fd",
  BRAND_SECONDARY_COLOR: "#5353D3",
  n: "BLOCKSCOUT",
  t: 20,
  d: "Returns the onchain information about an address on a provided blockchain. By default on Ethereum mainnet.",
  a: "Returns the onchain information about an address on a provided blockchain. By default on Ethereum mainnet.",
  p: [
    {
      name: "address",
      detail: "The address string representing the addresses to check for balance",
      example: `"vitalik.eth"`,
      require: "m",
      type: "string"
    },
    {
      name: "type",
      detail: "The type of data to query.",
      example: `"txns"`,
      require: "m",
      type: "string"
    },
    {
      name: "chain",
      detail: "The blockchain to query. By default on Ethereum mainnet. Can be gnosis, arbitrum, optimism, soneium, unichain  ",
      example: `"ethereum"`,
      require: "o",
      type: "string"
    },
    {
      name: "startTimestamp",
      detail: 'Start date marking the start of the transaction search range. Work with type === "txns"',
      example: `"01/01/2023"`,
      require: "o",
      type: "string"
    },
    {
      name: "endTimestamp",
      detail: 'End date marking the end of the transaction search range. Work with type === "txns"',
      example: `"01/05/2024"`,
      require: "o",
      type: "string"
    },
    {
      name: "page",
      detail: 'The page number to return. Work with type === "txns"',
      example: "1",
      require: "o",
      repeat: "n",
      type: "rangenumber"
    },
    {
      name: "offset",
      detail: 'The number of transactions to return per page. Work with type === "txns"',
      example: "2",
      require: "o",
      repeat: "n",
      type: "rangenumber"
    }
  ],
  examples: [{
    title: "BLOCKSCOUT",
    argumentString: '"vitalik.eth", "txns", "ethereum", "01/01/2023", "01/05/2024", 1, 2',
    description: "returns transaction history for the address vitalik.eth on the Ethereum blockchain between January 1, 2023 and January 5, 2024, returning page 1 with 2 transactions per page."
  }, {
    title: "BLOCKSCOUT",
    argumentString: '"vitalik.eth", "balance", "gnosis"',
    description: "returns the balance for the address vitalik.eth on the Gnosis blockchain."
  }]
};

// src/crypto/aave/metadata.js
var AAVE_metadata = {
  LOGO: "https://avatars.githubusercontent.com/u/47617460?s=200&v=4",
  BRAND_COLOR: "#f7f7ff",
  BRAND_SECONDARY_COLOR: "#9896ff",
  n: "AAVE",
  t: 20,
  d: "Returns Aave pools and tokens data",
  a: "Retrieves Aave data for a given chain and address from Aave",
  p: [
    {
      name: "graphType",
      detail: "Graph type to Query. Can be 'v2', 'v2-raw'",
      example: `"v2"`,
      require: "m",
      type: "string"
    },
    {
      name: "category",
      detail: "Query type for the data. Can be 'tokens', 'markets'",
      example: `"tokens"`,
      require: "m",
      type: "string"
    },
    {
      name: "param1",
      detail: "Token Contract Address for market category or Token symbol",
      example: `"USDT"`,
      require: "m",
      type: "string"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"id,name"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "AAVE",
      argumentString: '"v2", "tokens", "USDT"',
      description: "returns list data for the USDT token from Aave V2."
    },
    {
      title: "AAVE",
      argumentString: '"v2-raw", "markets", "AAVE"',
      description: "returns list data for the AAVE token from Aave V2."
    }
  ]
};

// src/crypto/firefly/metadata.js
var FIREFLY_metadata = {
  API_KEY: SERVICES_API_KEY.Firefly,
  LOGO: "https://firefly.social/android-chrome-192x192.png",
  BRAND_COLOR: "#f8f5fc",
  BRAND_SECONDARY_COLOR: "#855dcd",
  n: "FIREFLY",
  t: 20,
  d: "Fetches content from Farcaster or Lens.",
  a: "Retrieves posts, replies, or channels from Farcaster and Lens by usernames, IDs, or hashes.",
  p: [
    {
      name: "platform",
      detail: "The social platform to query. Supports 'farcaster' or 'lens'.",
      example: `"farcaster"`,
      require: "m",
      type: "string"
    },
    {
      name: "contentType",
      detail: "Type of content to fetch. Supports 'posts', 'replies', and 'channels' (channels only for 'farcaster').",
      example: `"posts"`,
      require: "m",
      type: "string"
    },
    {
      name: "identifier",
      detail: "Comma-separated usernames, IDs, or post hashes depending on platform and contentType.",
      example: `"toka,miroyato"`,
      require: "m",
      type: "string"
    },
    {
      name: "start",
      detail: "Pagination start index (default is 0).",
      example: `0`,
      require: "o",
      type: "number"
    },
    {
      name: "end",
      detail: "Pagination end index (default is 10).",
      example: `10`,
      require: "o",
      type: "number"
    }
  ],
  examples: [
    {
      title: "FIREFLY",
      argumentString: '"farcaster", "posts", "miroyato"',
      description: "returns posts made by the user with the username miroyato on Farcaster."
    },
    {
      title: "FIREFLY",
      argumentString: '"lens", "posts", "toka"',
      description: "returns posts made by the user with the username toka on Lens."
    }
  ]
};

// src/crypto/smart-contract/metadata.js
var SMARTCONTRACT_metadata = {
  n: "SMARTCONTRACT",
  t: 20,
  d: "Query smart contract in cells. Returning a list of available functions and arguments that you can use to get data.",
  r: "Query smart contract in cells. Returning a list of available functions and arguments that you can use to get data.",
  p: [
    {
      name: "contract_address",
      detail: "Address of the contract you want to query",
      example: '"0x9C58BAcC331c9aa871AFD802DB6379a98e80CEdb"',
      require: "m",
      type: "string"
    },
    {
      name: "chain",
      detail: 'Blockchain network(s) to query. Supported values: "ethereum", "gnosis", "base". Accepts comma-separated values.',
      example: '"GNOSIS"',
      require: "m",
      type: "string"
    }
  ],
  examples: [
    {
      title: "SMARTCONTRACT",
      argumentString: '"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", "ETHEREUM"',
      description: "returns the list of functions and their arguments for Circle USDC contract on Ethereum."
    },
    {
      title: "SMARTCONTRACT",
      argumentString: '"0xdac17f958d2ee523a2206206994597c13d831ec7", "ETHEREUM"',
      description: "returns the list of functions and their arguments for Tether USD (USDT) contract on Ethereum."
    }
  ]
};

// src/crypto/tally/metadata.js
var TALLY_metadata = {
  LOGO: "https://www.tally.xyz/favicon.ico",
  BRAND_COLOR: "#f9f8ff",
  BRAND_SECONDARY_COLOR: "#725bff",
  n: "TALLY",
  t: 20,
  d: "Query data from Tally",
  a: "Query data from Tally",
  p: [
    {
      name: "query",
      detail: "The type of Tally query you want to execute. We currently support only organization and proposals.",
      example: `"organization"`,
      require: "m",
      type: "string"
    },
    {
      name: "input1",
      detail: "Query input. We currently support only organisation slug e.g Aave, Arbitrum, Compound, ENS, NounsDAO, Uniswap etc...",
      example: `"arbitrum"`,
      require: "m",
      type: "string"
    }
  ],
  examples: [{
    title: "TALLY",
    argumentString: '"organization", "arbitrum"',
    description: "returns details about the Arbitrum organization from Tally."
  }, {
    title: "TALLY",
    argumentString: '"proposals", "aave"',
    description: "returns proposals for the Aave organization from Tally."
  }]
};

// src/crypto/dune-sim/metadata.js
var DUNESIM_metadata = {
  API_KEY: SERVICES_API_KEY.DuneSim,
  LOGO: "https://t0.gstatic.com/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://docs.sim.dune.com&size=32",
  BRAND_COLOR: "#fef7f5",
  BRAND_SECONDARY_COLOR: "#f9ab99",
  n: "DUNE",
  t: 20,
  d: "Query Sim APIs for blockchain activity, token prices, and token-holder data.",
  a: "Query Sim APIs for blockchain activity, token prices, and token-holder data.",
  p: [
    {
      name: "type",
      detail: "Specify \u201Cprice\u201D to query token price info, \u201Cactivity\u201D for wallet activity, or \u201Ctoken_holders\u201D for token-holder distribution.",
      example: `"price"`,
      require: "m",
      type: "string"
    },
    {
      name: "input1",
      detail: 'When type is "price": the chain ID or name to query token prices. When "activity": wallet address or ENS. When "token-holders": token address.',
      example: `"base"`,
      require: "m",
      type: "string"
    },
    {
      name: "input2",
      detail: 'When "price": optional historical price offsets. When "activity": optional chain ID or name ( e.g eth ). When "token-holders": chain ID or name ( e.g eth ).',
      example: `"1,6,24"`,
      require: "o",
      type: "string"
    },
    {
      name: "input3",
      detail: 'When "price": optional token contract address, when "activity": limit (1\u2013100), when "token-holders": limit (1\u2013500).',
      example: `"0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca"`,
      require: "o",
      type: "number"
    },
    {
      name: "input4",
      detail: 'When "price": optional limit for results.',
      example: `5`,
      require: "o",
      type: "number"
    }
  ],
  examples: [
    {
      title: "DUNE",
      argumentString: '"price", "base", 1, "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca", 5',
      description: "returns the price of the specified token on the Base chain with a 1-hour historical offset, limiting results to 5 entries."
    },
    {
      title: "DUNE",
      argumentString: '"activity", "vitalik.eth", "eth", 10',
      description: "returns the latest 10 wallet activities for the address vitalik.eth on the Ethereum chain."
    }
  ]
};

// src/crypto/price/metadata.js
var PRICE_metadata = {
  n: "PRICE",
  t: 20,
  d: "Query prices of crypto assets",
  r: "Query prices of crypto assets.",
  p: [
    {
      name: "input1",
      detail: "Token address or comma separated coin symbols",
      example: '"0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca"',
      require: "m",
      type: "string"
    },
    {
      name: "input2",
      detail: "Single chain for token addresses, Comma separated timeframe in hours for coin symbol. Optional for coin symbols",
      example: '"base"',
      require: "o",
      type: "string"
    },
    {
      name: "input3",
      detail: "Comma separated timeframe for token address, Skip for coin symbol",
      example: '"1,24"',
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "PRICE",
      argumentString: '"0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca", "base", "1,24"',
      description: "returns the price of the specified token on the Base chain with 1-hour and 24-hour historical offsets."
    },
    {
      title: "PRICE",
      argumentString: '"ETH,BTC", "1,24,168"',
      description: "returns the prices of ETH and BTC with 1-hour, 24-hour, and 168-hour (7-day) historical offsets."
    }
  ]
};

// src/crypto/wallet/metadata.js
var WALLET_metadata = {
  n: "WALLET",
  t: 20,
  d: "Query wallet balance and transactions",
  r: "Query wallet balance and transactions",
  p: [
    {
      name: "addresses",
      detail: "Comma separated addresses / ens",
      example: '"vitalik.eth, 0xfA0253943c3FF0e43898cba5A7a0dA9D17C27995"',
      require: "m",
      type: "string"
    },
    {
      name: "chain",
      detail: "Comma separated chains",
      example: '"ethereum, base"',
      require: "m",
      type: "any"
    },
    {
      name: "query",
      detail: 'Type of query, can be "txns" or "balance"',
      example: '"txns"',
      require: "m",
      type: "string"
    },
    {
      name: "timeframe",
      detail: "Comma-separated timeframes in hours. Defaults to latest block for \u201Ctxns\u201D and latest balance for \u201Cbalance\u201D",
      example: '"17520"',
      require: "o",
      type: "string"
    }
  ],
  examples: [
    {
      title: "WALLET",
      argumentString: '"0x7FD624f3f97A7dd36195E8379F28dB6147C270ff", "ethereum", "txns", "17520"',
      description: "returns transactions for the specified wallet address on the Ethereum chain within the last 17520 hours (approximately 2 years)."
    },
    {
      title: "WALLET",
      argumentString: '"vitalik.eth", "base", "balance"',
      description: "returns the latest balance for the address vitalik.eth on the Base chain."
    }
  ]
};

// src/crypto/yield/metadata.js
var YIELD_metadata = {
  n: "YIELD",
  t: 20,
  d: "Query yields",
  r: "Query yields",
  p: [
    {
      name: "category",
      detail: "Yield category to be fetch. Can be 'all' or 'stablecoins'",
      example: `"stablecoins"`,
      require: "m",
      type: "string"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"project,symbol"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [{
    title: "YIELD",
    argumentString: '"stablecoins"',
    description: "returns yield data for stablecoins."
  }, {
    title: "YIELD",
    argumentString: '"all"',
    description: "returns yield data for all categories."
  }]
};

// src/crypto/circles/metadata.js
var CIRCLES_metadata = {
  LOGO: "https://avatars.githubusercontent.com/u/159135534?s=200&v=4",
  n: "CIRCLES",
  t: 20,
  d: "Query the list of transactions performed by a Circles address, with optional pagination.",
  a: "Query the list of transactions performed by a Circles address, with optional pagination.",
  p: [
    {
      name: "functionName",
      detail: "The function name to query, supported values: 'trust', 'profile', 'transactions', 'balances'.",
      example: `"trust"`,
      require: "m"
    },
    {
      name: "address",
      detail: "The address to query, in hexadecimal format.",
      example: `"0xe9A6378d8FD4983C2999DB0735f258397E8C2253"`,
      require: "m"
    },
    {
      name: "entries",
      detail: "The number of entries to return. Default is 10.",
      example: `10`,
      require: "o",
      type: "number"
    },
    {
      name: "columnsName",
      detail: "Filter columns by name in output. Comma separated list.",
      example: `"address"`,
      require: "o",
      type: "string"
    }
  ],
  examples: [{
    title: "CIRCLES",
    argumentString: '"trust", "0xe9A6378d8FD4983C2999DB0735f258397E8C2253"',
    description: "returns the trust relationships for the specified Circles address."
  }, {
    title: "CIRCLES",
    argumentString: '"transactions", "0xe9A6378d8FD4983C2999DB0735f258397E8C2253", 5',
    description: "returns the last 5 transactions for the specified Circles address."
  }]
};

// src/crypto/crypto-metadata.js
var FUNCTION_LOCALE = [
  EOA_metadata,
  UNISWAP_metadata,
  COINGECKO_metadata,
  DEFILLAMA_metadata,
  BASE_metadata,
  GNOSIS_metadata,
  ETHERSCAN_metadata,
  PNL_metadata,
  SAFE_metadata,
  BLOCKSCOUT_metadata,
  AAVE_metadata,
  FIREFLY_metadata,
  SMARTCONTRACT_metadata,
  TALLY_metadata,
  DUNESIM_metadata,
  PRICE_metadata,
  WALLET_metadata,
  YIELD_metadata,
  CIRCLES_metadata,
  // GNOSISPAY_metadata,
  {
    LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/ploymarket.png",
    n: "POLYMARKET",
    t: 20,
    d: "Query prediction market positions, shares, and odds for future event outcomes on Polymarket. (Comming soon)",
    a: "Query prediction market positions, shares, and odds for future event outcomes on Polymarket. (Comming soon)",
    p: []
  },
  {
    LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/privacy.png",
    n: "PRIVACYPOOL",
    t: 20,
    d: "Access deposit/withdraw stats and compliance-safe anonymized transfers using zk-based Privacy Pools. (Comming soon)",
    a: "Access deposit/withdraw stats and compliance-safe anonymized transfers using zk-based Privacy Pools. (Comming soon)",
    p: []
  },
  {
    LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/rotki.png",
    n: "ROTKI",
    t: 20,
    d: "Pull portfolio, asset, and tax-related data from Rotki for crypto accounting and reporting. (Comming soon)",
    a: "Pull portfolio, asset, and tax-related data from Rotki for crypto accounting and reporting. (Comming soon)",
    p: []
  },
  {
    LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/meerkat.png",
    n: "MEERKAT",
    t: 20,
    d: "Query onchain proofs for tickets, attendance, speaker roles, and reactions. (Comming soon)",
    a: "Query onchain proofs for tickets, attendance, speaker roles, and reactions. (Comming soon)",
    p: []
  },
  {
    LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/artemis.png",
    n: "ARTEMIS",
    t: 20,
    d: "Query onchain financial metrics, developer activity, and market insights across protocols and sectors. (Comming soon)",
    a: "Query onchain financial metrics, developer activity, and market insights across protocols and sectors. (Comming soon)",
    p: []
  },
  {
    LOGO: "https://raw.githubusercontent.com/mritunjayz/github-storage/refs/heads/main/MYANIMELIST.png",
    n: "MYANIMELIST",
    t: 20,
    d: "Kawaiii, comming soon. Hello Keith! (Comming soon)",
    a: "Kawaiii, comming soon. Hello Keith! (Comming soon)",
    p: []
  }
];

// src/crypto/gnosispay/gnosispay.js
var import_jwt_check_expiration = __toESM(require_src(), 1);
function isExpired(access) {
  return (0, import_jwt_check_expiration.isJwtExpired)(access);
}
export {
  BLOCKSCOUT_CHAINS_MAP,
  CHAIN_ID_MAP,
  ERROR_MESSAGES_FLAG,
  FUNCTION_LOCALE,
  MAX_PAGE_LIMIT,
  SAFE_CHAIN_MAP,
  SERVICES_API_KEY,
  UTILITY,
  isExpired as isGnosisPayAccessExpired
};
