@otim/utils 0.0.2-development.0 → 0.0.2

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/dist/api/index.js CHANGED
@@ -1294,7 +1294,7 @@ var transactionGetListRequestSchema = import_zod17.z.object({
1294
1294
  var transactionGetListResponseSchema = import_zod17.z.array(transactionSchema);
1295
1295
 
1296
1296
  // src/env.ts
1297
- var BUILD_MODE = "development";
1297
+ var BUILD_MODE = "production";
1298
1298
 
1299
1299
  // src/helpers/logger.ts
1300
1300
  var Logger = class {
@@ -1152,7 +1152,7 @@ var transactionGetListRequestSchema = z17.object({
1152
1152
  var transactionGetListResponseSchema = z17.array(transactionSchema);
1153
1153
 
1154
1154
  // src/env.ts
1155
- var BUILD_MODE = "development";
1155
+ var BUILD_MODE = "production";
1156
1156
 
1157
1157
  // src/helpers/logger.ts
1158
1158
  var Logger = class {
@@ -3612,14 +3612,14 @@ export declare const allSupportedChains: {
3612
3612
  };
3613
3613
  /**
3614
3614
  * Get the default chain ID based on the current environment.
3615
- * Production/Preview: Base mainnet
3616
- * Development: Base Sepolia
3615
+ * Production: Base mainnet (8453)
3616
+ * Development/Staging/Preview: Base Sepolia (84532)
3617
3617
  */
3618
3618
  export declare const getDefaultChainId: () => number;
3619
3619
  /**
3620
3620
  * Get the default chain based on the current environment.
3621
- * Production/Preview: Base mainnet
3622
- * Development: Base Sepolia
3621
+ * Production: Base mainnet
3622
+ * Development/Staging/Preview: Base Sepolia
3623
3623
  */
3624
3624
  export declare const getDefaultChain: () => {
3625
3625
  blockExplorers: {
@@ -3612,14 +3612,14 @@ export declare const allSupportedChains: {
3612
3612
  };
3613
3613
  /**
3614
3614
  * Get the default chain ID based on the current environment.
3615
- * Production/Preview: Base mainnet
3616
- * Development: Base Sepolia
3615
+ * Production: Base mainnet (8453)
3616
+ * Development/Staging/Preview: Base Sepolia (84532)
3617
3617
  */
3618
3618
  export declare const getDefaultChainId: () => number;
3619
3619
  /**
3620
3620
  * Get the default chain based on the current environment.
3621
- * Production/Preview: Base mainnet
3622
- * Development: Base Sepolia
3621
+ * Production: Base mainnet
3622
+ * Development/Staging/Preview: Base Sepolia
3623
3623
  */
3624
3624
  export declare const getDefaultChain: () => {
3625
3625
  blockExplorers: {
@@ -1 +1 @@
1
- {"version":3,"file":"all-chains.d.ts","sourceRoot":"","sources":["../../../src/chains/config/all-chains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"all-chains.d.ts","sourceRoot":"","sources":["../../../src/chains/config/all-chains.ts"],"names":[],"mappings":"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"}
@@ -112,9 +112,15 @@ var pecorinoHost = {
112
112
  var import_chains = require("viem/chains");
113
113
 
114
114
  // src/env.ts
115
- var BUILD_MODE = "development";
115
+ var BUILD_MODE = "production";
116
116
 
117
117
  // src/chains/config/all-chains.ts
118
+ function isProductionMode() {
119
+ if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_ENVIRONMENT) {
120
+ return process.env.NEXT_PUBLIC_ENVIRONMENT === "production";
121
+ }
122
+ return BUILD_MODE === "production";
123
+ }
118
124
  var supportedChains = {
119
125
  mainnet: {
120
126
  mainnet: import_chains.mainnet,
@@ -150,10 +156,10 @@ var allSupportedChains = {
150
156
  pecorinoSignet
151
157
  };
152
158
  var getDefaultChainId = () => {
153
- return BUILD_MODE === "production" ? import_chains.base.id : import_chains.baseSepolia.id;
159
+ return isProductionMode() ? import_chains.base.id : import_chains.baseSepolia.id;
154
160
  };
155
161
  var getDefaultChain = () => {
156
- return BUILD_MODE === "production" ? import_chains.base : import_chains.baseSepolia;
162
+ return isProductionMode() ? import_chains.base : import_chains.baseSepolia;
157
163
  };
158
164
 
159
165
  // src/chains/config/mainnet-chains.ts
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/chains/index.ts", "../../src/chains/config/custom-chains.ts", "../../src/chains/config/all-chains.ts", "../../src/env.ts", "../../src/chains/config/mainnet-chains.ts", "../../src/chains/config/testnet-chains.ts", "../../src/chains/tokens/token-addresses.ts", "../../src/helpers/blockchain.ts", "../../src/chains/tokens/token-metadata.ts", "../../src/chains/tokens/chain-tokens.ts", "../../src/chains/config/supported-chains.ts", "../../src/chains/utils/filter-tokens.ts", "../../src/chains/utils/token-maps.ts", "../../src/chains/utils/stablecoin.ts", "../../src/chains/lambda/chain-mapping.ts"],
4
- "sourcesContent": ["export type {\n ChainConfig,\n ChainToken,\n ChainTokenAddresses,\n TokenMetadata,\n} from \"./types\";\nexport type {\n MainnetChainName,\n SupportedChainName,\n TestnetChainName,\n} from \"./config/all-chains\";\nexport type { SupportedChainId } from \"./config/supported-chains\";\n\nexport { pecorinoHost, pecorinoSignet } from \"./config/custom-chains\";\n\nexport {\n allSupportedChains,\n getDefaultChain,\n getDefaultChainId,\n supportedChains,\n} from \"./config/all-chains\";\n\nexport {\n getMainnetChain,\n isMainnetChain,\n mainnetChains,\n mainnetChainsById,\n} from \"./config/mainnet-chains\";\n\nexport {\n getTestnetChain,\n isTestnetChain,\n testnetChains,\n testnetChainsById,\n} from \"./config/testnet-chains\";\n\nexport {\n allChains,\n chainById,\n getAllChains,\n getChainById,\n getChainConfig,\n getMainnetChains,\n getTestnetChains,\n isSupportedChain,\n} from \"./config/supported-chains\";\n\nexport { getTokenMetadata, tokenMetadata } from \"./tokens/token-metadata\";\n\nexport {\n getTokenAddress,\n getTokenAddresses,\n isTokenSupported,\n tokenAddresses,\n} from \"./tokens/token-addresses\";\n\nexport {\n getChainToken,\n getChainTokenByAddress,\n getChainTokens,\n} from \"./tokens/chain-tokens\";\n\nexport { filterTokens } from \"./utils/filter-tokens\";\n\nexport {\n createTokenMaps,\n getTokenByAddress,\n getTokenBySymbol,\n type TokenMaps,\n} from \"./utils/token-maps\";\n\nexport { isStablecoin } from \"./utils/stablecoin\";\n\nexport {\n chainIdToLambdaId,\n CHAIN_ID_TO_LAMBDA_ID,\n getLambdaChainIds,\n getLambdaSupportedChainIds,\n isLambdaSupportedChain,\n LAMBDA_ID_TO_CHAIN_ID,\n lambdaIdToChainId,\n} from \"./lambda/chain-mapping\";\n", "import type { Chain } from \"viem/chains\";\n\nexport const pecorinoSignet = {\n id: 14174,\n name: \"Pecorino Signet\",\n nativeCurrency: {\n decimals: 18,\n name: \"USD\",\n symbol: \"USD\",\n },\n rpcUrls: {\n default: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Signet Explorer\",\n url: \"https://explorer.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n\nexport const pecorinoHost = {\n id: 3151908,\n name: \"Pecorino Host\",\n nativeCurrency: {\n decimals: 18,\n name: \"ETH\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Host Explorer\",\n url: \"https://explorer-host.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n", "import {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\nimport { BUILD_MODE } from \"../../env\";\n\nexport const supportedChains = {\n mainnet: {\n mainnet,\n base,\n arbitrum,\n optimism,\n },\n testnet: {\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n pecorinoHost,\n pecorinoSignet,\n },\n} as const;\n\nexport const allSupportedChains = {\n mainnet,\n base,\n arbitrum,\n optimism,\n bsc,\n unichain,\n polygon,\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n} as const;\n\n/**\n * Get the default chain ID based on the current environment.\n * Production/Preview: Base mainnet\n * Development: Base Sepolia\n */\nexport const getDefaultChainId = (): number => {\n return BUILD_MODE === \"production\" ? base.id : baseSepolia.id;\n};\n\n/**\n * Get the default chain based on the current environment.\n * Production/Preview: Base mainnet\n * Development: Base Sepolia\n */\nexport const getDefaultChain = () => {\n return BUILD_MODE === \"production\" ? base : baseSepolia;\n};\n\nexport type SupportedChainName = keyof typeof allSupportedChains;\nexport type MainnetChainName = keyof typeof supportedChains.mainnet;\nexport type TestnetChainName = keyof typeof supportedChains.testnet;\n", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from \"viem/chains\";\n\nexport const mainnetChains = [mainnet, base, arbitrum, optimism, bsc, unichain, polygon] as const;\n\nexport const mainnetChainsById = new Map<number, Chain>(\n mainnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getMainnetChain(chainId: number): Optional<Chain> {\n return mainnetChainsById.get(chainId);\n}\n\nexport function isMainnetChain(chainId: number): boolean {\n return mainnetChainsById.has(chainId);\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport {\n arbitrumSepolia,\n baseSepolia,\n bscTestnet,\n optimismSepolia,\n polygonAmoy,\n sepolia,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\n\nexport const testnetChains = [\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n] as const;\n\nexport const testnetChainsById = new Map<number, Chain>(\n testnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getTestnetChain(chainId: number): Optional<Chain> {\n return testnetChainsById.get(chainId);\n}\n\nexport function isTestnetChain(chainId: number): boolean {\n return testnetChainsById.has(chainId);\n}\n", "import type { ChainTokenAddresses } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Address } from \"@otim/utils/schemas\";\n\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { DEFAULT_ADDRESS } from \"../../helpers\";\nimport { pecorinoHost, pecorinoSignet } from \"../config/custom-chains\";\n\nexport const tokenAddresses: Record<number, ChainTokenAddresses> = {\n [mainnet.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n USDC: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n USDT: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n [base.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n USDT: \"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2\",\n },\n [arbitrum.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0xaf88d065e77c8cc2239327c5edb3a432268e5831\",\n USDT: \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n },\n [optimism.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n USDT: \"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58\",\n },\n [sepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14\",\n USDC: \"0x1c7d4b196cb0c7b01d743fbc6116a902379c7238\",\n USDT: \"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0\",\n },\n [baseSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n USDT: \"0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673\",\n },\n [arbitrumSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n USDT: \"0xE5b6C29411b3ad31C3613BbA0145293fC9957256\",\n },\n [optimismSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x5fd84259d66Cd46123540766Be93DFE6D43130D7\",\n USDT: \"0xebca682b6c15d539284432edc5b960771f0009e8\",\n },\n [bsc.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n USDC: \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n USDT: \"0x55d398326f99059fF775485246999027B3197955\",\n },\n [bscTestnet.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n USDC: \"0x64544969ed7EBf5f083679233325356EbE738930\",\n },\n [unichain.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA\",\n },\n [unichainSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x4B4dB6adEdED34DC879EbBaed49D3054f26D8D87\",\n },\n [polygon.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n USDC: \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n USDT: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n },\n [polygonAmoy.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9\",\n USDC: \"0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582\",\n },\n [pecorinoSignet.id]: {\n USD: DEFAULT_ADDRESS,\n },\n [pecorinoHost.id]: {\n ETH: DEFAULT_ADDRESS,\n },\n};\n\nexport function getTokenAddresses(chainId: number): ChainTokenAddresses {\n return tokenAddresses[chainId] || {};\n}\n\nexport function getTokenAddress(\n chainId: number,\n symbol: string,\n): Optional<Address> {\n const addresses = getTokenAddresses(chainId);\n return addresses[symbol.toUpperCase()];\n}\n\nexport function isTokenSupported(chainId: number, symbol: string): boolean {\n return getTokenAddress(chainId, symbol) !== undefined;\n}\n", "import type { EIP2098Signature, HexString, VRS } from \"@otim/utils/schemas\";\nimport type { Chain } from \"viem\";\n\nimport { isAddressEqual } from \"viem\";\n\nexport const truncateAddress = (address: string): string => {\n if (!address) return \"\";\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n};\n\n/**\n * Ethereum address regex pattern\n * Matches addresses like 0x1234...abcd (40 hex characters after 0x prefix)\n */\nexport const ETHEREUM_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;\n\n/**\n * Validates if a string is a valid Ethereum address format\n * @param address - The address string to validate\n * @returns true if the address matches the Ethereum address format\n */\nexport const isValidEthereumAddress = (address: string): boolean => {\n return ETHEREUM_ADDRESS_REGEX.test(address);\n};\n\n/**\n * Parses a signature string into its v, r, s components.\n * @param signature - The signature string to parse (must be 0x-prefixed, 132 chars total)\n * @returns VRS object containing v, r, and s values\n */\nexport const parseSignatureToVRS = (signature: string): VRS => {\n if (typeof signature !== \"string\") {\n throw new Error(\"Signature must be a string\");\n }\n\n if (!signature.startsWith(\"0x\")) {\n throw new Error('Signature must start with \"0x\"');\n }\n\n if (signature.length !== 132) {\n throw new Error(\n 'Signature must be 65 bytes (130 hex chars) plus \"0x\" = 132 total length',\n );\n }\n\n const r = signature.slice(2, 66);\n const s = signature.slice(66, 130);\n const vHex = signature.slice(130, 132);\n const v = parseInt(vHex, 16);\n return { v, r: `0x${r}`, s: `0x${s}` };\n};\n\n/**\n * Checks if a v value is valid according to EIP-155.\n */\nexport const isValidV = (v: number): boolean => {\n return v === 0 || v === 1 || v === 27 || v === 28 || v >= 35;\n};\n\n/**\n * Normalizes v value for EIP-155 compliance.\n */\nexport const normalizeV = (v: number) => {\n if (!isValidV(v)) return 0;\n\n const cmp = v <= 1 ? 1 : 0;\n const result = v % 2 === cmp;\n\n return Number(result) % 2;\n};\n\n/**\n * Creates an EIP-2098 compact signature from VRS components.\n * @param vrs - The VRS signature components\n * @returns EIP2098Signature object with yParity, r, and s\n */\nexport const createEIP2098Signature = (vrs: VRS): EIP2098Signature => {\n const v = vrs.v;\n const r = vrs.r;\n const s = vrs.s;\n\n return { yParity: normalizeV(v), r, s };\n};\n\nexport const getChainRpcUrl = (\n chainId: number,\n chains: readonly [Chain, ...Chain[]],\n) => {\n const chain = chains.find((chain) => chain.id === chainId);\n return chain?.rpcUrls.default;\n};\n\nexport const DEFAULT_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\nexport const isNullAddress = (address: HexString) => {\n return isAddressEqual(address, DEFAULT_ADDRESS);\n};\n", "import type { TokenMetadata } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport const tokenMetadata: Record<string, TokenMetadata> = {\n ETH: {\n name: \"Ether\",\n symbol: \"ETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n },\n WETH: {\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n type: \"ERC20\",\n },\n USD: {\n name: \"US Dollar\",\n symbol: \"USD\",\n decimals: 18,\n logoURI: \"/tokens/usd.svg\",\n },\n USDC: {\n name: \"USD Coin\",\n symbol: \"USDC\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n type: \"ERC20\",\n },\n USDT: {\n name: \"Tether\",\n symbol: \"USDT\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n type: \"ERC20\",\n },\n};\n\nexport function getTokenMetadata(symbol: string): Optional<TokenMetadata> {\n return tokenMetadata[symbol.toUpperCase()];\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nimport { getTokenAddresses } from \"./token-addresses\";\nimport { getTokenMetadata } from \"./token-metadata\";\n\nexport function getChainTokens(chainId: number): ChainToken[] {\n const addresses = getTokenAddresses(chainId);\n const tokens: ChainToken[] = [];\n\n for (const [symbol, address] of Object.entries(addresses)) {\n const metadata = getTokenMetadata(symbol);\n\n if (metadata && address) {\n tokens.push({ ...metadata, address, chainId });\n }\n }\n\n return tokens;\n}\n\nexport function getChainToken(\n chainId: number,\n symbol: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.symbol.toUpperCase() === symbol.toUpperCase(),\n );\n}\n\nexport function getChainTokenByAddress(\n chainId: number,\n address: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.address.toLowerCase() === address.toLowerCase(),\n );\n}\n", "import type { ChainConfig } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { mainnetChains } from \"./mainnet-chains\";\nimport { testnetChains } from \"./testnet-chains\";\nimport { getChainTokens } from \"../tokens/chain-tokens\";\n\nexport const allChains = [...mainnetChains, ...testnetChains] as const;\n\nexport type SupportedChainId = (typeof allChains)[number][\"id\"];\n\nexport const chainById = new Map<number, Chain>(\n allChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getChainById(chainId: number): Optional<Chain> {\n return chainById.get(chainId);\n}\n\nexport function getChainConfig(chainId: number): Optional<ChainConfig> {\n const chain = getChainById(chainId);\n if (!chain) return undefined;\n\n return {\n chain,\n isTestnet: chain.testnet ?? false,\n tokens: getChainTokens(chain.id),\n };\n}\n\nexport function getMainnetChains(): ChainConfig[] {\n return mainnetChains.map((chain) => ({\n chain,\n isTestnet: false,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getTestnetChains(): ChainConfig[] {\n return testnetChains.map((chain) => ({\n chain,\n isTestnet: true,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getAllChains(): ChainConfig[] {\n return [...getMainnetChains(), ...getTestnetChains()];\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return chainById.has(chainId);\n}\n", "import type { ChainToken } from \"../types\";\n\nexport function filterTokens(\n tokens: ChainToken[],\n allowedSymbols: string[],\n disabledSymbols: string[],\n): ChainToken[] {\n let result = tokens;\n\n if (disabledSymbols.length > 0) {\n result = result.filter(\n (token) => !disabledSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n if (allowedSymbols && allowedSymbols.length > 0) {\n result = result.filter((token) =>\n allowedSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n return result;\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport interface TokenMaps {\n byAddress: Map<string, ChainToken>;\n bySymbol: Map<string, ChainToken>;\n}\n\nexport function createTokenMaps(tokens: ChainToken[]): TokenMaps {\n const byAddress = new Map<string, ChainToken>();\n const bySymbol = new Map<string, ChainToken>();\n\n tokens.forEach((token) => {\n byAddress.set(token.address.toLowerCase(), token);\n bySymbol.set(token.symbol.toLowerCase(), token);\n });\n\n return { byAddress, bySymbol };\n}\n\nexport function getTokenByAddress(\n maps: TokenMaps,\n address: string,\n): Optional<ChainToken> {\n if (!address) return undefined;\n return maps.byAddress.get(address.toLowerCase());\n}\n\nexport function getTokenBySymbol(\n maps: TokenMaps,\n symbol: string,\n): Optional<ChainToken> {\n if (!symbol) return undefined;\n return maps.bySymbol.get(symbol.toLowerCase());\n}\n", "/**\n * List of supported stablecoin symbols\n */\nconst stablecoinSymbols = [\"USDC\", \"USDT\"] as const;\n\n/**\n * Checks if a token symbol is a stablecoin\n * @param symbol - Token symbol to check (e.g., \"USDC\", \"ETH\")\n * @returns true if the symbol is a recognized stablecoin\n */\nexport function isStablecoin(symbol: string | string[]): boolean {\n if (typeof symbol === \"string\") {\n return stablecoinSymbols.includes(\n symbol as (typeof stablecoinSymbols)[number],\n );\n }\n\n return symbol.every((s) =>\n stablecoinSymbols.includes(s as (typeof stablecoinSymbols)[number]),\n );\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\n\n/**\n * Mapping between chain ID numbers (used internally by otim) and\n * Lambda API chain ID strings (used by Lambda's API endpoints).\n *\n * Lambda uses string identifiers for chains while we use numeric chain IDs\n * from viem/wagmi. This map provides bidirectional conversion.\n */\n\n/**\n * Map from numeric chain ID to Lambda chain ID string\n */\nexport const CHAIN_ID_TO_LAMBDA_ID: Record<number, string> = {\n /** Mainnet chains */\n 1: \"ethereum\",\n 8453: \"base\",\n 42161: \"arbitrum\",\n 10: \"optimism\",\n 56: \"binance-smart-chain\",\n 130: \"unichain\",\n 137: \"polygon\",\n} as const;\n\n/**\n * Map from Lambda chain ID string to numeric chain ID\n */\nexport const LAMBDA_ID_TO_CHAIN_ID: Record<string, number> = {\n ethereum: 1,\n base: 8453,\n arbitrum: 42161,\n optimism: 10,\n \"binance-smart-chain\": 56,\n unichain: 130,\n polygon: 137,\n} as const;\n\n/**\n * Convert a numeric chain ID to Lambda's chain ID string\n * @param chainId - The numeric chain ID\n * @returns The Lambda chain ID string, or undefined if not supported by Lambda\n * @example\n * ```ts\n * chainIdToLambdaId(8453) // \"base\"\n * chainIdToLambdaId(1) // \"ethereum\"\n * ```\n */\n\nexport function chainIdToLambdaId(chainId: number): Optional<string> {\n return CHAIN_ID_TO_LAMBDA_ID[chainId];\n}\n\n/**\n * Convert a Lambda chain ID string to numeric chain ID\n * @param lambdaId - The Lambda chain ID string\n * @returns The numeric chain ID, or undefined if not recognized\n * @example\n * ```ts\n * lambdaIdToChainId(\"base\") // 8453\n * lambdaIdToChainId(\"ethereum\") // 1\n * ```\n */\nexport function lambdaIdToChainId(lambdaId: string): Optional<number> {\n return LAMBDA_ID_TO_CHAIN_ID[lambdaId];\n}\n\n/**\n * Check if a chain ID is supported by Lambda\n * @param chainId - The numeric chain ID to check\n * @returns true if the chain is supported by Lambda\n */\nexport function isLambdaSupportedChain(chainId: number): boolean {\n return chainId in CHAIN_ID_TO_LAMBDA_ID;\n}\n\n/**\n * Get all chain IDs supported by Lambda\n * @returns Array of numeric chain IDs that are supported by Lambda\n */\nexport function getLambdaSupportedChainIds(): number[] {\n return Object.keys(CHAIN_ID_TO_LAMBDA_ID).map(Number);\n}\n\n/**\n * Get all Lambda chain ID strings\n * @returns Array of Lambda chain ID strings\n */\nexport function getLambdaChainIds(): string[] {\n return Object.values(CHAIN_ID_TO_LAMBDA_ID);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export type {\n ChainConfig,\n ChainToken,\n ChainTokenAddresses,\n TokenMetadata,\n} from \"./types\";\nexport type {\n MainnetChainName,\n SupportedChainName,\n TestnetChainName,\n} from \"./config/all-chains\";\nexport type { SupportedChainId } from \"./config/supported-chains\";\n\nexport { pecorinoHost, pecorinoSignet } from \"./config/custom-chains\";\n\nexport {\n allSupportedChains,\n getDefaultChain,\n getDefaultChainId,\n supportedChains,\n} from \"./config/all-chains\";\n\nexport {\n getMainnetChain,\n isMainnetChain,\n mainnetChains,\n mainnetChainsById,\n} from \"./config/mainnet-chains\";\n\nexport {\n getTestnetChain,\n isTestnetChain,\n testnetChains,\n testnetChainsById,\n} from \"./config/testnet-chains\";\n\nexport {\n allChains,\n chainById,\n getAllChains,\n getChainById,\n getChainConfig,\n getMainnetChains,\n getTestnetChains,\n isSupportedChain,\n} from \"./config/supported-chains\";\n\nexport { getTokenMetadata, tokenMetadata } from \"./tokens/token-metadata\";\n\nexport {\n getTokenAddress,\n getTokenAddresses,\n isTokenSupported,\n tokenAddresses,\n} from \"./tokens/token-addresses\";\n\nexport {\n getChainToken,\n getChainTokenByAddress,\n getChainTokens,\n} from \"./tokens/chain-tokens\";\n\nexport { filterTokens } from \"./utils/filter-tokens\";\n\nexport {\n createTokenMaps,\n getTokenByAddress,\n getTokenBySymbol,\n type TokenMaps,\n} from \"./utils/token-maps\";\n\nexport { isStablecoin } from \"./utils/stablecoin\";\n\nexport {\n chainIdToLambdaId,\n CHAIN_ID_TO_LAMBDA_ID,\n getLambdaChainIds,\n getLambdaSupportedChainIds,\n isLambdaSupportedChain,\n LAMBDA_ID_TO_CHAIN_ID,\n lambdaIdToChainId,\n} from \"./lambda/chain-mapping\";\n", "import type { Chain } from \"viem/chains\";\n\nexport const pecorinoSignet = {\n id: 14174,\n name: \"Pecorino Signet\",\n nativeCurrency: {\n decimals: 18,\n name: \"USD\",\n symbol: \"USD\",\n },\n rpcUrls: {\n default: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Signet Explorer\",\n url: \"https://explorer.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n\nexport const pecorinoHost = {\n id: 3151908,\n name: \"Pecorino Host\",\n nativeCurrency: {\n decimals: 18,\n name: \"ETH\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Host Explorer\",\n url: \"https://explorer-host.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n", "import {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\nimport { BUILD_MODE } from \"../../env\";\n\n/**\n * Determines if we should use production chains based on runtime environment.\n * Checks NEXT_PUBLIC_ENVIRONMENT (runtime) first, falls back to BUILD_MODE (build-time).\n *\n * Production chains are used when:\n * - NEXT_PUBLIC_ENVIRONMENT === \"production\"\n * - BUILD_MODE === \"production\" (fallback if NEXT_PUBLIC_ENVIRONMENT is not set)\n */\nfunction isProductionMode(): boolean {\n // Check runtime environment variable first (available in Next.js)\n if (typeof process !== \"undefined\" && process.env?.NEXT_PUBLIC_ENVIRONMENT) {\n return process.env.NEXT_PUBLIC_ENVIRONMENT === \"production\";\n }\n\n // Fall back to build-time environment\n return BUILD_MODE === \"production\";\n}\n\nexport const supportedChains = {\n mainnet: {\n mainnet,\n base,\n arbitrum,\n optimism,\n },\n testnet: {\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n pecorinoHost,\n pecorinoSignet,\n },\n} as const;\n\nexport const allSupportedChains = {\n mainnet,\n base,\n arbitrum,\n optimism,\n bsc,\n unichain,\n polygon,\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n} as const;\n\n/**\n * Get the default chain ID based on the current environment.\n * Production: Base mainnet (8453)\n * Development/Staging/Preview: Base Sepolia (84532)\n */\nexport const getDefaultChainId = (): number => {\n return isProductionMode() ? base.id : baseSepolia.id;\n};\n\n/**\n * Get the default chain based on the current environment.\n * Production: Base mainnet\n * Development/Staging/Preview: Base Sepolia\n */\nexport const getDefaultChain = () => {\n return isProductionMode() ? base : baseSepolia;\n};\n\nexport type SupportedChainName = keyof typeof allSupportedChains;\nexport type MainnetChainName = keyof typeof supportedChains.mainnet;\nexport type TestnetChainName = keyof typeof supportedChains.testnet;\n", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from \"viem/chains\";\n\nexport const mainnetChains = [mainnet, base, arbitrum, optimism, bsc, unichain, polygon] as const;\n\nexport const mainnetChainsById = new Map<number, Chain>(\n mainnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getMainnetChain(chainId: number): Optional<Chain> {\n return mainnetChainsById.get(chainId);\n}\n\nexport function isMainnetChain(chainId: number): boolean {\n return mainnetChainsById.has(chainId);\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport {\n arbitrumSepolia,\n baseSepolia,\n bscTestnet,\n optimismSepolia,\n polygonAmoy,\n sepolia,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\n\nexport const testnetChains = [\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n] as const;\n\nexport const testnetChainsById = new Map<number, Chain>(\n testnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getTestnetChain(chainId: number): Optional<Chain> {\n return testnetChainsById.get(chainId);\n}\n\nexport function isTestnetChain(chainId: number): boolean {\n return testnetChainsById.has(chainId);\n}\n", "import type { ChainTokenAddresses } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Address } from \"@otim/utils/schemas\";\n\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { DEFAULT_ADDRESS } from \"../../helpers\";\nimport { pecorinoHost, pecorinoSignet } from \"../config/custom-chains\";\n\nexport const tokenAddresses: Record<number, ChainTokenAddresses> = {\n [mainnet.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n USDC: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n USDT: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n [base.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n USDT: \"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2\",\n },\n [arbitrum.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0xaf88d065e77c8cc2239327c5edb3a432268e5831\",\n USDT: \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n },\n [optimism.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n USDT: \"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58\",\n },\n [sepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14\",\n USDC: \"0x1c7d4b196cb0c7b01d743fbc6116a902379c7238\",\n USDT: \"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0\",\n },\n [baseSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n USDT: \"0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673\",\n },\n [arbitrumSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n USDT: \"0xE5b6C29411b3ad31C3613BbA0145293fC9957256\",\n },\n [optimismSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x5fd84259d66Cd46123540766Be93DFE6D43130D7\",\n USDT: \"0xebca682b6c15d539284432edc5b960771f0009e8\",\n },\n [bsc.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n USDC: \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n USDT: \"0x55d398326f99059fF775485246999027B3197955\",\n },\n [bscTestnet.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n USDC: \"0x64544969ed7EBf5f083679233325356EbE738930\",\n },\n [unichain.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA\",\n },\n [unichainSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x4B4dB6adEdED34DC879EbBaed49D3054f26D8D87\",\n },\n [polygon.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n USDC: \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n USDT: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n },\n [polygonAmoy.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9\",\n USDC: \"0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582\",\n },\n [pecorinoSignet.id]: {\n USD: DEFAULT_ADDRESS,\n },\n [pecorinoHost.id]: {\n ETH: DEFAULT_ADDRESS,\n },\n};\n\nexport function getTokenAddresses(chainId: number): ChainTokenAddresses {\n return tokenAddresses[chainId] || {};\n}\n\nexport function getTokenAddress(\n chainId: number,\n symbol: string,\n): Optional<Address> {\n const addresses = getTokenAddresses(chainId);\n return addresses[symbol.toUpperCase()];\n}\n\nexport function isTokenSupported(chainId: number, symbol: string): boolean {\n return getTokenAddress(chainId, symbol) !== undefined;\n}\n", "import type { EIP2098Signature, HexString, VRS } from \"@otim/utils/schemas\";\nimport type { Chain } from \"viem\";\n\nimport { isAddressEqual } from \"viem\";\n\nexport const truncateAddress = (address: string): string => {\n if (!address) return \"\";\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n};\n\n/**\n * Ethereum address regex pattern\n * Matches addresses like 0x1234...abcd (40 hex characters after 0x prefix)\n */\nexport const ETHEREUM_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;\n\n/**\n * Validates if a string is a valid Ethereum address format\n * @param address - The address string to validate\n * @returns true if the address matches the Ethereum address format\n */\nexport const isValidEthereumAddress = (address: string): boolean => {\n return ETHEREUM_ADDRESS_REGEX.test(address);\n};\n\n/**\n * Parses a signature string into its v, r, s components.\n * @param signature - The signature string to parse (must be 0x-prefixed, 132 chars total)\n * @returns VRS object containing v, r, and s values\n */\nexport const parseSignatureToVRS = (signature: string): VRS => {\n if (typeof signature !== \"string\") {\n throw new Error(\"Signature must be a string\");\n }\n\n if (!signature.startsWith(\"0x\")) {\n throw new Error('Signature must start with \"0x\"');\n }\n\n if (signature.length !== 132) {\n throw new Error(\n 'Signature must be 65 bytes (130 hex chars) plus \"0x\" = 132 total length',\n );\n }\n\n const r = signature.slice(2, 66);\n const s = signature.slice(66, 130);\n const vHex = signature.slice(130, 132);\n const v = parseInt(vHex, 16);\n return { v, r: `0x${r}`, s: `0x${s}` };\n};\n\n/**\n * Checks if a v value is valid according to EIP-155.\n */\nexport const isValidV = (v: number): boolean => {\n return v === 0 || v === 1 || v === 27 || v === 28 || v >= 35;\n};\n\n/**\n * Normalizes v value for EIP-155 compliance.\n */\nexport const normalizeV = (v: number) => {\n if (!isValidV(v)) return 0;\n\n const cmp = v <= 1 ? 1 : 0;\n const result = v % 2 === cmp;\n\n return Number(result) % 2;\n};\n\n/**\n * Creates an EIP-2098 compact signature from VRS components.\n * @param vrs - The VRS signature components\n * @returns EIP2098Signature object with yParity, r, and s\n */\nexport const createEIP2098Signature = (vrs: VRS): EIP2098Signature => {\n const v = vrs.v;\n const r = vrs.r;\n const s = vrs.s;\n\n return { yParity: normalizeV(v), r, s };\n};\n\nexport const getChainRpcUrl = (\n chainId: number,\n chains: readonly [Chain, ...Chain[]],\n) => {\n const chain = chains.find((chain) => chain.id === chainId);\n return chain?.rpcUrls.default;\n};\n\nexport const DEFAULT_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\nexport const isNullAddress = (address: HexString) => {\n return isAddressEqual(address, DEFAULT_ADDRESS);\n};\n", "import type { TokenMetadata } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport const tokenMetadata: Record<string, TokenMetadata> = {\n ETH: {\n name: \"Ether\",\n symbol: \"ETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n },\n WETH: {\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n type: \"ERC20\",\n },\n USD: {\n name: \"US Dollar\",\n symbol: \"USD\",\n decimals: 18,\n logoURI: \"/tokens/usd.svg\",\n },\n USDC: {\n name: \"USD Coin\",\n symbol: \"USDC\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n type: \"ERC20\",\n },\n USDT: {\n name: \"Tether\",\n symbol: \"USDT\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n type: \"ERC20\",\n },\n};\n\nexport function getTokenMetadata(symbol: string): Optional<TokenMetadata> {\n return tokenMetadata[symbol.toUpperCase()];\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nimport { getTokenAddresses } from \"./token-addresses\";\nimport { getTokenMetadata } from \"./token-metadata\";\n\nexport function getChainTokens(chainId: number): ChainToken[] {\n const addresses = getTokenAddresses(chainId);\n const tokens: ChainToken[] = [];\n\n for (const [symbol, address] of Object.entries(addresses)) {\n const metadata = getTokenMetadata(symbol);\n\n if (metadata && address) {\n tokens.push({ ...metadata, address, chainId });\n }\n }\n\n return tokens;\n}\n\nexport function getChainToken(\n chainId: number,\n symbol: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.symbol.toUpperCase() === symbol.toUpperCase(),\n );\n}\n\nexport function getChainTokenByAddress(\n chainId: number,\n address: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.address.toLowerCase() === address.toLowerCase(),\n );\n}\n", "import type { ChainConfig } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { mainnetChains } from \"./mainnet-chains\";\nimport { testnetChains } from \"./testnet-chains\";\nimport { getChainTokens } from \"../tokens/chain-tokens\";\n\nexport const allChains = [...mainnetChains, ...testnetChains] as const;\n\nexport type SupportedChainId = (typeof allChains)[number][\"id\"];\n\nexport const chainById = new Map<number, Chain>(\n allChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getChainById(chainId: number): Optional<Chain> {\n return chainById.get(chainId);\n}\n\nexport function getChainConfig(chainId: number): Optional<ChainConfig> {\n const chain = getChainById(chainId);\n if (!chain) return undefined;\n\n return {\n chain,\n isTestnet: chain.testnet ?? false,\n tokens: getChainTokens(chain.id),\n };\n}\n\nexport function getMainnetChains(): ChainConfig[] {\n return mainnetChains.map((chain) => ({\n chain,\n isTestnet: false,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getTestnetChains(): ChainConfig[] {\n return testnetChains.map((chain) => ({\n chain,\n isTestnet: true,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getAllChains(): ChainConfig[] {\n return [...getMainnetChains(), ...getTestnetChains()];\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return chainById.has(chainId);\n}\n", "import type { ChainToken } from \"../types\";\n\nexport function filterTokens(\n tokens: ChainToken[],\n allowedSymbols: string[],\n disabledSymbols: string[],\n): ChainToken[] {\n let result = tokens;\n\n if (disabledSymbols.length > 0) {\n result = result.filter(\n (token) => !disabledSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n if (allowedSymbols && allowedSymbols.length > 0) {\n result = result.filter((token) =>\n allowedSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n return result;\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport interface TokenMaps {\n byAddress: Map<string, ChainToken>;\n bySymbol: Map<string, ChainToken>;\n}\n\nexport function createTokenMaps(tokens: ChainToken[]): TokenMaps {\n const byAddress = new Map<string, ChainToken>();\n const bySymbol = new Map<string, ChainToken>();\n\n tokens.forEach((token) => {\n byAddress.set(token.address.toLowerCase(), token);\n bySymbol.set(token.symbol.toLowerCase(), token);\n });\n\n return { byAddress, bySymbol };\n}\n\nexport function getTokenByAddress(\n maps: TokenMaps,\n address: string,\n): Optional<ChainToken> {\n if (!address) return undefined;\n return maps.byAddress.get(address.toLowerCase());\n}\n\nexport function getTokenBySymbol(\n maps: TokenMaps,\n symbol: string,\n): Optional<ChainToken> {\n if (!symbol) return undefined;\n return maps.bySymbol.get(symbol.toLowerCase());\n}\n", "/**\n * List of supported stablecoin symbols\n */\nconst stablecoinSymbols = [\"USDC\", \"USDT\"] as const;\n\n/**\n * Checks if a token symbol is a stablecoin\n * @param symbol - Token symbol to check (e.g., \"USDC\", \"ETH\")\n * @returns true if the symbol is a recognized stablecoin\n */\nexport function isStablecoin(symbol: string | string[]): boolean {\n if (typeof symbol === \"string\") {\n return stablecoinSymbols.includes(\n symbol as (typeof stablecoinSymbols)[number],\n );\n }\n\n return symbol.every((s) =>\n stablecoinSymbols.includes(s as (typeof stablecoinSymbols)[number]),\n );\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\n\n/**\n * Mapping between chain ID numbers (used internally by otim) and\n * Lambda API chain ID strings (used by Lambda's API endpoints).\n *\n * Lambda uses string identifiers for chains while we use numeric chain IDs\n * from viem/wagmi. This map provides bidirectional conversion.\n */\n\n/**\n * Map from numeric chain ID to Lambda chain ID string\n */\nexport const CHAIN_ID_TO_LAMBDA_ID: Record<number, string> = {\n /** Mainnet chains */\n 1: \"ethereum\",\n 8453: \"base\",\n 42161: \"arbitrum\",\n 10: \"optimism\",\n 56: \"binance-smart-chain\",\n 130: \"unichain\",\n 137: \"polygon\",\n} as const;\n\n/**\n * Map from Lambda chain ID string to numeric chain ID\n */\nexport const LAMBDA_ID_TO_CHAIN_ID: Record<string, number> = {\n ethereum: 1,\n base: 8453,\n arbitrum: 42161,\n optimism: 10,\n \"binance-smart-chain\": 56,\n unichain: 130,\n polygon: 137,\n} as const;\n\n/**\n * Convert a numeric chain ID to Lambda's chain ID string\n * @param chainId - The numeric chain ID\n * @returns The Lambda chain ID string, or undefined if not supported by Lambda\n * @example\n * ```ts\n * chainIdToLambdaId(8453) // \"base\"\n * chainIdToLambdaId(1) // \"ethereum\"\n * ```\n */\n\nexport function chainIdToLambdaId(chainId: number): Optional<string> {\n return CHAIN_ID_TO_LAMBDA_ID[chainId];\n}\n\n/**\n * Convert a Lambda chain ID string to numeric chain ID\n * @param lambdaId - The Lambda chain ID string\n * @returns The numeric chain ID, or undefined if not recognized\n * @example\n * ```ts\n * lambdaIdToChainId(\"base\") // 8453\n * lambdaIdToChainId(\"ethereum\") // 1\n * ```\n */\nexport function lambdaIdToChainId(lambdaId: string): Optional<number> {\n return LAMBDA_ID_TO_CHAIN_ID[lambdaId];\n}\n\n/**\n * Check if a chain ID is supported by Lambda\n * @param chainId - The numeric chain ID to check\n * @returns true if the chain is supported by Lambda\n */\nexport function isLambdaSupportedChain(chainId: number): boolean {\n return chainId in CHAIN_ID_TO_LAMBDA_ID;\n}\n\n/**\n * Get all chain IDs supported by Lambda\n * @returns Array of numeric chain IDs that are supported by Lambda\n */\nexport function getLambdaSupportedChainIds(): number[] {\n return Object.keys(CHAIN_ID_TO_LAMBDA_ID).map(Number);\n}\n\n/**\n * Get all Lambda chain ID strings\n * @returns Array of Lambda chain ID strings\n */\nexport function getLambdaChainIds(): string[] {\n return Object.values(CHAIN_ID_TO_LAMBDA_ID);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_chains", "import_chains", "import_chains"]
7
7
  }
@@ -59,9 +59,15 @@ import {
59
59
  } from "viem/chains";
60
60
 
61
61
  // src/env.ts
62
- var BUILD_MODE = "development";
62
+ var BUILD_MODE = "production";
63
63
 
64
64
  // src/chains/config/all-chains.ts
65
+ function isProductionMode() {
66
+ if (typeof process !== "undefined" && process.env?.NEXT_PUBLIC_ENVIRONMENT) {
67
+ return process.env.NEXT_PUBLIC_ENVIRONMENT === "production";
68
+ }
69
+ return BUILD_MODE === "production";
70
+ }
65
71
  var supportedChains = {
66
72
  mainnet: {
67
73
  mainnet,
@@ -97,10 +103,10 @@ var allSupportedChains = {
97
103
  pecorinoSignet
98
104
  };
99
105
  var getDefaultChainId = () => {
100
- return BUILD_MODE === "production" ? base.id : baseSepolia.id;
106
+ return isProductionMode() ? base.id : baseSepolia.id;
101
107
  };
102
108
  var getDefaultChain = () => {
103
- return BUILD_MODE === "production" ? base : baseSepolia;
109
+ return isProductionMode() ? base : baseSepolia;
104
110
  };
105
111
 
106
112
  // src/chains/config/mainnet-chains.ts
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/chains/config/custom-chains.ts", "../../src/chains/config/all-chains.ts", "../../src/env.ts", "../../src/chains/config/mainnet-chains.ts", "../../src/chains/config/testnet-chains.ts", "../../src/chains/tokens/token-addresses.ts", "../../src/helpers/blockchain.ts", "../../src/chains/tokens/token-metadata.ts", "../../src/chains/tokens/chain-tokens.ts", "../../src/chains/config/supported-chains.ts", "../../src/chains/utils/filter-tokens.ts", "../../src/chains/utils/token-maps.ts", "../../src/chains/utils/stablecoin.ts", "../../src/chains/lambda/chain-mapping.ts"],
4
- "sourcesContent": ["import type { Chain } from \"viem/chains\";\n\nexport const pecorinoSignet = {\n id: 14174,\n name: \"Pecorino Signet\",\n nativeCurrency: {\n decimals: 18,\n name: \"USD\",\n symbol: \"USD\",\n },\n rpcUrls: {\n default: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Signet Explorer\",\n url: \"https://explorer.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n\nexport const pecorinoHost = {\n id: 3151908,\n name: \"Pecorino Host\",\n nativeCurrency: {\n decimals: 18,\n name: \"ETH\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Host Explorer\",\n url: \"https://explorer-host.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n", "import {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\nimport { BUILD_MODE } from \"../../env\";\n\nexport const supportedChains = {\n mainnet: {\n mainnet,\n base,\n arbitrum,\n optimism,\n },\n testnet: {\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n pecorinoHost,\n pecorinoSignet,\n },\n} as const;\n\nexport const allSupportedChains = {\n mainnet,\n base,\n arbitrum,\n optimism,\n bsc,\n unichain,\n polygon,\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n} as const;\n\n/**\n * Get the default chain ID based on the current environment.\n * Production/Preview: Base mainnet\n * Development: Base Sepolia\n */\nexport const getDefaultChainId = (): number => {\n return BUILD_MODE === \"production\" ? base.id : baseSepolia.id;\n};\n\n/**\n * Get the default chain based on the current environment.\n * Production/Preview: Base mainnet\n * Development: Base Sepolia\n */\nexport const getDefaultChain = () => {\n return BUILD_MODE === \"production\" ? base : baseSepolia;\n};\n\nexport type SupportedChainName = keyof typeof allSupportedChains;\nexport type MainnetChainName = keyof typeof supportedChains.mainnet;\nexport type TestnetChainName = keyof typeof supportedChains.testnet;\n", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from \"viem/chains\";\n\nexport const mainnetChains = [mainnet, base, arbitrum, optimism, bsc, unichain, polygon] as const;\n\nexport const mainnetChainsById = new Map<number, Chain>(\n mainnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getMainnetChain(chainId: number): Optional<Chain> {\n return mainnetChainsById.get(chainId);\n}\n\nexport function isMainnetChain(chainId: number): boolean {\n return mainnetChainsById.has(chainId);\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport {\n arbitrumSepolia,\n baseSepolia,\n bscTestnet,\n optimismSepolia,\n polygonAmoy,\n sepolia,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\n\nexport const testnetChains = [\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n] as const;\n\nexport const testnetChainsById = new Map<number, Chain>(\n testnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getTestnetChain(chainId: number): Optional<Chain> {\n return testnetChainsById.get(chainId);\n}\n\nexport function isTestnetChain(chainId: number): boolean {\n return testnetChainsById.has(chainId);\n}\n", "import type { ChainTokenAddresses } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Address } from \"@otim/utils/schemas\";\n\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { DEFAULT_ADDRESS } from \"../../helpers\";\nimport { pecorinoHost, pecorinoSignet } from \"../config/custom-chains\";\n\nexport const tokenAddresses: Record<number, ChainTokenAddresses> = {\n [mainnet.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n USDC: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n USDT: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n [base.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n USDT: \"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2\",\n },\n [arbitrum.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0xaf88d065e77c8cc2239327c5edb3a432268e5831\",\n USDT: \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n },\n [optimism.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n USDT: \"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58\",\n },\n [sepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14\",\n USDC: \"0x1c7d4b196cb0c7b01d743fbc6116a902379c7238\",\n USDT: \"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0\",\n },\n [baseSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n USDT: \"0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673\",\n },\n [arbitrumSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n USDT: \"0xE5b6C29411b3ad31C3613BbA0145293fC9957256\",\n },\n [optimismSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x5fd84259d66Cd46123540766Be93DFE6D43130D7\",\n USDT: \"0xebca682b6c15d539284432edc5b960771f0009e8\",\n },\n [bsc.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n USDC: \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n USDT: \"0x55d398326f99059fF775485246999027B3197955\",\n },\n [bscTestnet.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n USDC: \"0x64544969ed7EBf5f083679233325356EbE738930\",\n },\n [unichain.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA\",\n },\n [unichainSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x4B4dB6adEdED34DC879EbBaed49D3054f26D8D87\",\n },\n [polygon.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n USDC: \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n USDT: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n },\n [polygonAmoy.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9\",\n USDC: \"0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582\",\n },\n [pecorinoSignet.id]: {\n USD: DEFAULT_ADDRESS,\n },\n [pecorinoHost.id]: {\n ETH: DEFAULT_ADDRESS,\n },\n};\n\nexport function getTokenAddresses(chainId: number): ChainTokenAddresses {\n return tokenAddresses[chainId] || {};\n}\n\nexport function getTokenAddress(\n chainId: number,\n symbol: string,\n): Optional<Address> {\n const addresses = getTokenAddresses(chainId);\n return addresses[symbol.toUpperCase()];\n}\n\nexport function isTokenSupported(chainId: number, symbol: string): boolean {\n return getTokenAddress(chainId, symbol) !== undefined;\n}\n", "import type { EIP2098Signature, HexString, VRS } from \"@otim/utils/schemas\";\nimport type { Chain } from \"viem\";\n\nimport { isAddressEqual } from \"viem\";\n\nexport const truncateAddress = (address: string): string => {\n if (!address) return \"\";\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n};\n\n/**\n * Ethereum address regex pattern\n * Matches addresses like 0x1234...abcd (40 hex characters after 0x prefix)\n */\nexport const ETHEREUM_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;\n\n/**\n * Validates if a string is a valid Ethereum address format\n * @param address - The address string to validate\n * @returns true if the address matches the Ethereum address format\n */\nexport const isValidEthereumAddress = (address: string): boolean => {\n return ETHEREUM_ADDRESS_REGEX.test(address);\n};\n\n/**\n * Parses a signature string into its v, r, s components.\n * @param signature - The signature string to parse (must be 0x-prefixed, 132 chars total)\n * @returns VRS object containing v, r, and s values\n */\nexport const parseSignatureToVRS = (signature: string): VRS => {\n if (typeof signature !== \"string\") {\n throw new Error(\"Signature must be a string\");\n }\n\n if (!signature.startsWith(\"0x\")) {\n throw new Error('Signature must start with \"0x\"');\n }\n\n if (signature.length !== 132) {\n throw new Error(\n 'Signature must be 65 bytes (130 hex chars) plus \"0x\" = 132 total length',\n );\n }\n\n const r = signature.slice(2, 66);\n const s = signature.slice(66, 130);\n const vHex = signature.slice(130, 132);\n const v = parseInt(vHex, 16);\n return { v, r: `0x${r}`, s: `0x${s}` };\n};\n\n/**\n * Checks if a v value is valid according to EIP-155.\n */\nexport const isValidV = (v: number): boolean => {\n return v === 0 || v === 1 || v === 27 || v === 28 || v >= 35;\n};\n\n/**\n * Normalizes v value for EIP-155 compliance.\n */\nexport const normalizeV = (v: number) => {\n if (!isValidV(v)) return 0;\n\n const cmp = v <= 1 ? 1 : 0;\n const result = v % 2 === cmp;\n\n return Number(result) % 2;\n};\n\n/**\n * Creates an EIP-2098 compact signature from VRS components.\n * @param vrs - The VRS signature components\n * @returns EIP2098Signature object with yParity, r, and s\n */\nexport const createEIP2098Signature = (vrs: VRS): EIP2098Signature => {\n const v = vrs.v;\n const r = vrs.r;\n const s = vrs.s;\n\n return { yParity: normalizeV(v), r, s };\n};\n\nexport const getChainRpcUrl = (\n chainId: number,\n chains: readonly [Chain, ...Chain[]],\n) => {\n const chain = chains.find((chain) => chain.id === chainId);\n return chain?.rpcUrls.default;\n};\n\nexport const DEFAULT_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\nexport const isNullAddress = (address: HexString) => {\n return isAddressEqual(address, DEFAULT_ADDRESS);\n};\n", "import type { TokenMetadata } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport const tokenMetadata: Record<string, TokenMetadata> = {\n ETH: {\n name: \"Ether\",\n symbol: \"ETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n },\n WETH: {\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n type: \"ERC20\",\n },\n USD: {\n name: \"US Dollar\",\n symbol: \"USD\",\n decimals: 18,\n logoURI: \"/tokens/usd.svg\",\n },\n USDC: {\n name: \"USD Coin\",\n symbol: \"USDC\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n type: \"ERC20\",\n },\n USDT: {\n name: \"Tether\",\n symbol: \"USDT\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n type: \"ERC20\",\n },\n};\n\nexport function getTokenMetadata(symbol: string): Optional<TokenMetadata> {\n return tokenMetadata[symbol.toUpperCase()];\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nimport { getTokenAddresses } from \"./token-addresses\";\nimport { getTokenMetadata } from \"./token-metadata\";\n\nexport function getChainTokens(chainId: number): ChainToken[] {\n const addresses = getTokenAddresses(chainId);\n const tokens: ChainToken[] = [];\n\n for (const [symbol, address] of Object.entries(addresses)) {\n const metadata = getTokenMetadata(symbol);\n\n if (metadata && address) {\n tokens.push({ ...metadata, address, chainId });\n }\n }\n\n return tokens;\n}\n\nexport function getChainToken(\n chainId: number,\n symbol: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.symbol.toUpperCase() === symbol.toUpperCase(),\n );\n}\n\nexport function getChainTokenByAddress(\n chainId: number,\n address: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.address.toLowerCase() === address.toLowerCase(),\n );\n}\n", "import type { ChainConfig } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { mainnetChains } from \"./mainnet-chains\";\nimport { testnetChains } from \"./testnet-chains\";\nimport { getChainTokens } from \"../tokens/chain-tokens\";\n\nexport const allChains = [...mainnetChains, ...testnetChains] as const;\n\nexport type SupportedChainId = (typeof allChains)[number][\"id\"];\n\nexport const chainById = new Map<number, Chain>(\n allChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getChainById(chainId: number): Optional<Chain> {\n return chainById.get(chainId);\n}\n\nexport function getChainConfig(chainId: number): Optional<ChainConfig> {\n const chain = getChainById(chainId);\n if (!chain) return undefined;\n\n return {\n chain,\n isTestnet: chain.testnet ?? false,\n tokens: getChainTokens(chain.id),\n };\n}\n\nexport function getMainnetChains(): ChainConfig[] {\n return mainnetChains.map((chain) => ({\n chain,\n isTestnet: false,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getTestnetChains(): ChainConfig[] {\n return testnetChains.map((chain) => ({\n chain,\n isTestnet: true,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getAllChains(): ChainConfig[] {\n return [...getMainnetChains(), ...getTestnetChains()];\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return chainById.has(chainId);\n}\n", "import type { ChainToken } from \"../types\";\n\nexport function filterTokens(\n tokens: ChainToken[],\n allowedSymbols: string[],\n disabledSymbols: string[],\n): ChainToken[] {\n let result = tokens;\n\n if (disabledSymbols.length > 0) {\n result = result.filter(\n (token) => !disabledSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n if (allowedSymbols && allowedSymbols.length > 0) {\n result = result.filter((token) =>\n allowedSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n return result;\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport interface TokenMaps {\n byAddress: Map<string, ChainToken>;\n bySymbol: Map<string, ChainToken>;\n}\n\nexport function createTokenMaps(tokens: ChainToken[]): TokenMaps {\n const byAddress = new Map<string, ChainToken>();\n const bySymbol = new Map<string, ChainToken>();\n\n tokens.forEach((token) => {\n byAddress.set(token.address.toLowerCase(), token);\n bySymbol.set(token.symbol.toLowerCase(), token);\n });\n\n return { byAddress, bySymbol };\n}\n\nexport function getTokenByAddress(\n maps: TokenMaps,\n address: string,\n): Optional<ChainToken> {\n if (!address) return undefined;\n return maps.byAddress.get(address.toLowerCase());\n}\n\nexport function getTokenBySymbol(\n maps: TokenMaps,\n symbol: string,\n): Optional<ChainToken> {\n if (!symbol) return undefined;\n return maps.bySymbol.get(symbol.toLowerCase());\n}\n", "/**\n * List of supported stablecoin symbols\n */\nconst stablecoinSymbols = [\"USDC\", \"USDT\"] as const;\n\n/**\n * Checks if a token symbol is a stablecoin\n * @param symbol - Token symbol to check (e.g., \"USDC\", \"ETH\")\n * @returns true if the symbol is a recognized stablecoin\n */\nexport function isStablecoin(symbol: string | string[]): boolean {\n if (typeof symbol === \"string\") {\n return stablecoinSymbols.includes(\n symbol as (typeof stablecoinSymbols)[number],\n );\n }\n\n return symbol.every((s) =>\n stablecoinSymbols.includes(s as (typeof stablecoinSymbols)[number]),\n );\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\n\n/**\n * Mapping between chain ID numbers (used internally by otim) and\n * Lambda API chain ID strings (used by Lambda's API endpoints).\n *\n * Lambda uses string identifiers for chains while we use numeric chain IDs\n * from viem/wagmi. This map provides bidirectional conversion.\n */\n\n/**\n * Map from numeric chain ID to Lambda chain ID string\n */\nexport const CHAIN_ID_TO_LAMBDA_ID: Record<number, string> = {\n /** Mainnet chains */\n 1: \"ethereum\",\n 8453: \"base\",\n 42161: \"arbitrum\",\n 10: \"optimism\",\n 56: \"binance-smart-chain\",\n 130: \"unichain\",\n 137: \"polygon\",\n} as const;\n\n/**\n * Map from Lambda chain ID string to numeric chain ID\n */\nexport const LAMBDA_ID_TO_CHAIN_ID: Record<string, number> = {\n ethereum: 1,\n base: 8453,\n arbitrum: 42161,\n optimism: 10,\n \"binance-smart-chain\": 56,\n unichain: 130,\n polygon: 137,\n} as const;\n\n/**\n * Convert a numeric chain ID to Lambda's chain ID string\n * @param chainId - The numeric chain ID\n * @returns The Lambda chain ID string, or undefined if not supported by Lambda\n * @example\n * ```ts\n * chainIdToLambdaId(8453) // \"base\"\n * chainIdToLambdaId(1) // \"ethereum\"\n * ```\n */\n\nexport function chainIdToLambdaId(chainId: number): Optional<string> {\n return CHAIN_ID_TO_LAMBDA_ID[chainId];\n}\n\n/**\n * Convert a Lambda chain ID string to numeric chain ID\n * @param lambdaId - The Lambda chain ID string\n * @returns The numeric chain ID, or undefined if not recognized\n * @example\n * ```ts\n * lambdaIdToChainId(\"base\") // 8453\n * lambdaIdToChainId(\"ethereum\") // 1\n * ```\n */\nexport function lambdaIdToChainId(lambdaId: string): Optional<number> {\n return LAMBDA_ID_TO_CHAIN_ID[lambdaId];\n}\n\n/**\n * Check if a chain ID is supported by Lambda\n * @param chainId - The numeric chain ID to check\n * @returns true if the chain is supported by Lambda\n */\nexport function isLambdaSupportedChain(chainId: number): boolean {\n return chainId in CHAIN_ID_TO_LAMBDA_ID;\n}\n\n/**\n * Get all chain IDs supported by Lambda\n * @returns Array of numeric chain IDs that are supported by Lambda\n */\nexport function getLambdaSupportedChainIds(): number[] {\n return Object.keys(CHAIN_ID_TO_LAMBDA_ID).map(Number);\n}\n\n/**\n * Get all Lambda chain ID strings\n * @returns Array of Lambda chain ID strings\n */\nexport function getLambdaChainIds(): string[] {\n return Object.values(CHAIN_ID_TO_LAMBDA_ID);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Chain } from \"viem/chains\";\n\nexport const pecorinoSignet = {\n id: 14174,\n name: \"Pecorino Signet\",\n nativeCurrency: {\n decimals: 18,\n name: \"USD\",\n symbol: \"USD\",\n },\n rpcUrls: {\n default: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Signet Explorer\",\n url: \"https://explorer.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n\nexport const pecorinoHost = {\n id: 3151908,\n name: \"Pecorino Host\",\n nativeCurrency: {\n decimals: 18,\n name: \"ETH\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n public: { http: [\"https://host-rpc.pecorino.signet.sh/\"] },\n },\n blockExplorers: {\n default: {\n name: \"Pecorino Host Explorer\",\n url: \"https://explorer-host.pecorino.signet.sh/\",\n },\n },\n testnet: true,\n} as const satisfies Chain;\n", "import {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\nimport { BUILD_MODE } from \"../../env\";\n\n/**\n * Determines if we should use production chains based on runtime environment.\n * Checks NEXT_PUBLIC_ENVIRONMENT (runtime) first, falls back to BUILD_MODE (build-time).\n *\n * Production chains are used when:\n * - NEXT_PUBLIC_ENVIRONMENT === \"production\"\n * - BUILD_MODE === \"production\" (fallback if NEXT_PUBLIC_ENVIRONMENT is not set)\n */\nfunction isProductionMode(): boolean {\n // Check runtime environment variable first (available in Next.js)\n if (typeof process !== \"undefined\" && process.env?.NEXT_PUBLIC_ENVIRONMENT) {\n return process.env.NEXT_PUBLIC_ENVIRONMENT === \"production\";\n }\n\n // Fall back to build-time environment\n return BUILD_MODE === \"production\";\n}\n\nexport const supportedChains = {\n mainnet: {\n mainnet,\n base,\n arbitrum,\n optimism,\n },\n testnet: {\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n pecorinoHost,\n pecorinoSignet,\n },\n} as const;\n\nexport const allSupportedChains = {\n mainnet,\n base,\n arbitrum,\n optimism,\n bsc,\n unichain,\n polygon,\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n} as const;\n\n/**\n * Get the default chain ID based on the current environment.\n * Production: Base mainnet (8453)\n * Development/Staging/Preview: Base Sepolia (84532)\n */\nexport const getDefaultChainId = (): number => {\n return isProductionMode() ? base.id : baseSepolia.id;\n};\n\n/**\n * Get the default chain based on the current environment.\n * Production: Base mainnet\n * Development/Staging/Preview: Base Sepolia\n */\nexport const getDefaultChain = () => {\n return isProductionMode() ? base : baseSepolia;\n};\n\nexport type SupportedChainName = keyof typeof allSupportedChains;\nexport type MainnetChainName = keyof typeof supportedChains.mainnet;\nexport type TestnetChainName = keyof typeof supportedChains.testnet;\n", "/**\n * Environment configuration for @otim/utils\n *\n * These values are injected at build time via esbuild's define option.\n * See scripts/build.js for the injection logic.\n */\n\n/**\n * Build mode - determines production vs development behavior\n * Values: \"production\" | \"development\"\n */\nexport const BUILD_MODE = process.env.BUILD_MODE || \"development\";\n\n/**\n * App API URL - base URL for API requests\n * Defaults to production URL if not specified\n */\nexport const APP_API_URL =\n process.env.NEXT_PUBLIC_APP_API_URL || \"https://app.otim.com/api\";\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from \"viem/chains\";\n\nexport const mainnetChains = [mainnet, base, arbitrum, optimism, bsc, unichain, polygon] as const;\n\nexport const mainnetChainsById = new Map<number, Chain>(\n mainnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getMainnetChain(chainId: number): Optional<Chain> {\n return mainnetChainsById.get(chainId);\n}\n\nexport function isMainnetChain(chainId: number): boolean {\n return mainnetChainsById.has(chainId);\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport {\n arbitrumSepolia,\n baseSepolia,\n bscTestnet,\n optimismSepolia,\n polygonAmoy,\n sepolia,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { pecorinoHost, pecorinoSignet } from \"./custom-chains\";\n\nexport const testnetChains = [\n sepolia,\n baseSepolia,\n arbitrumSepolia,\n optimismSepolia,\n bscTestnet,\n unichainSepolia,\n polygonAmoy,\n pecorinoHost,\n pecorinoSignet,\n] as const;\n\nexport const testnetChainsById = new Map<number, Chain>(\n testnetChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getTestnetChain(chainId: number): Optional<Chain> {\n return testnetChainsById.get(chainId);\n}\n\nexport function isTestnetChain(chainId: number): boolean {\n return testnetChainsById.has(chainId);\n}\n", "import type { ChainTokenAddresses } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Address } from \"@otim/utils/schemas\";\n\nimport {\n arbitrum,\n arbitrumSepolia,\n base,\n baseSepolia,\n bsc,\n bscTestnet,\n mainnet,\n optimism,\n optimismSepolia,\n polygon,\n polygonAmoy,\n sepolia,\n unichain,\n unichainSepolia,\n} from \"viem/chains\";\n\nimport { DEFAULT_ADDRESS } from \"../../helpers\";\nimport { pecorinoHost, pecorinoSignet } from \"../config/custom-chains\";\n\nexport const tokenAddresses: Record<number, ChainTokenAddresses> = {\n [mainnet.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2\",\n USDC: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n USDT: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n },\n [base.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n USDT: \"0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2\",\n },\n [arbitrum.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0xaf88d065e77c8cc2239327c5edb3a432268e5831\",\n USDT: \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n },\n [optimism.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\",\n USDT: \"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58\",\n },\n [sepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14\",\n USDC: \"0x1c7d4b196cb0c7b01d743fbc6116a902379c7238\",\n USDT: \"0xaa8e23fb1079ea71e0a56f48a2aa51851d8433d0\",\n },\n [baseSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x036CbD53842c5426634e7929541eC2318f3dCF7e\",\n USDT: \"0x323e78f944A9a1FcF3a10efcC5319DBb0bB6e673\",\n },\n [arbitrumSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1\",\n USDC: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n USDT: \"0xE5b6C29411b3ad31C3613BbA0145293fC9957256\",\n },\n [optimismSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x5fd84259d66Cd46123540766Be93DFE6D43130D7\",\n USDT: \"0xebca682b6c15d539284432edc5b960771f0009e8\",\n },\n [bsc.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\",\n USDC: \"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d\",\n USDT: \"0x55d398326f99059fF775485246999027B3197955\",\n },\n [bscTestnet.id]: {\n BNB: DEFAULT_ADDRESS,\n WBNB: \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\",\n USDC: \"0x64544969ed7EBf5f083679233325356EbE738930\",\n },\n [unichain.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA\",\n },\n [unichainSepolia.id]: {\n ETH: DEFAULT_ADDRESS,\n WETH: \"0x4200000000000000000000000000000000000006\",\n USDC: \"0x4B4dB6adEdED34DC879EbBaed49D3054f26D8D87\",\n },\n [polygon.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270\",\n USDC: \"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359\",\n USDT: \"0xc2132D05D31c914a87C6611C10748AEb04B58e8F\",\n },\n [polygonAmoy.id]: {\n POL: DEFAULT_ADDRESS,\n MATIC: DEFAULT_ADDRESS,\n WMATIC: \"0x360ad4f9a9A8EFe9A8DCB5f461c4Cc1047E1Dcf9\",\n USDC: \"0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582\",\n },\n [pecorinoSignet.id]: {\n USD: DEFAULT_ADDRESS,\n },\n [pecorinoHost.id]: {\n ETH: DEFAULT_ADDRESS,\n },\n};\n\nexport function getTokenAddresses(chainId: number): ChainTokenAddresses {\n return tokenAddresses[chainId] || {};\n}\n\nexport function getTokenAddress(\n chainId: number,\n symbol: string,\n): Optional<Address> {\n const addresses = getTokenAddresses(chainId);\n return addresses[symbol.toUpperCase()];\n}\n\nexport function isTokenSupported(chainId: number, symbol: string): boolean {\n return getTokenAddress(chainId, symbol) !== undefined;\n}\n", "import type { EIP2098Signature, HexString, VRS } from \"@otim/utils/schemas\";\nimport type { Chain } from \"viem\";\n\nimport { isAddressEqual } from \"viem\";\n\nexport const truncateAddress = (address: string): string => {\n if (!address) return \"\";\n return `${address.slice(0, 6)}...${address.slice(-4)}`;\n};\n\n/**\n * Ethereum address regex pattern\n * Matches addresses like 0x1234...abcd (40 hex characters after 0x prefix)\n */\nexport const ETHEREUM_ADDRESS_REGEX = /^0x[a-fA-F0-9]{40}$/;\n\n/**\n * Validates if a string is a valid Ethereum address format\n * @param address - The address string to validate\n * @returns true if the address matches the Ethereum address format\n */\nexport const isValidEthereumAddress = (address: string): boolean => {\n return ETHEREUM_ADDRESS_REGEX.test(address);\n};\n\n/**\n * Parses a signature string into its v, r, s components.\n * @param signature - The signature string to parse (must be 0x-prefixed, 132 chars total)\n * @returns VRS object containing v, r, and s values\n */\nexport const parseSignatureToVRS = (signature: string): VRS => {\n if (typeof signature !== \"string\") {\n throw new Error(\"Signature must be a string\");\n }\n\n if (!signature.startsWith(\"0x\")) {\n throw new Error('Signature must start with \"0x\"');\n }\n\n if (signature.length !== 132) {\n throw new Error(\n 'Signature must be 65 bytes (130 hex chars) plus \"0x\" = 132 total length',\n );\n }\n\n const r = signature.slice(2, 66);\n const s = signature.slice(66, 130);\n const vHex = signature.slice(130, 132);\n const v = parseInt(vHex, 16);\n return { v, r: `0x${r}`, s: `0x${s}` };\n};\n\n/**\n * Checks if a v value is valid according to EIP-155.\n */\nexport const isValidV = (v: number): boolean => {\n return v === 0 || v === 1 || v === 27 || v === 28 || v >= 35;\n};\n\n/**\n * Normalizes v value for EIP-155 compliance.\n */\nexport const normalizeV = (v: number) => {\n if (!isValidV(v)) return 0;\n\n const cmp = v <= 1 ? 1 : 0;\n const result = v % 2 === cmp;\n\n return Number(result) % 2;\n};\n\n/**\n * Creates an EIP-2098 compact signature from VRS components.\n * @param vrs - The VRS signature components\n * @returns EIP2098Signature object with yParity, r, and s\n */\nexport const createEIP2098Signature = (vrs: VRS): EIP2098Signature => {\n const v = vrs.v;\n const r = vrs.r;\n const s = vrs.s;\n\n return { yParity: normalizeV(v), r, s };\n};\n\nexport const getChainRpcUrl = (\n chainId: number,\n chains: readonly [Chain, ...Chain[]],\n) => {\n const chain = chains.find((chain) => chain.id === chainId);\n return chain?.rpcUrls.default;\n};\n\nexport const DEFAULT_ADDRESS = \"0x0000000000000000000000000000000000000000\";\n\nexport const isNullAddress = (address: HexString) => {\n return isAddressEqual(address, DEFAULT_ADDRESS);\n};\n", "import type { TokenMetadata } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport const tokenMetadata: Record<string, TokenMetadata> = {\n ETH: {\n name: \"Ether\",\n symbol: \"ETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n },\n WETH: {\n name: \"Wrapped Ether\",\n symbol: \"WETH\",\n decimals: 18,\n logoURI: \"/tokens/eth.svg\",\n type: \"ERC20\",\n },\n USD: {\n name: \"US Dollar\",\n symbol: \"USD\",\n decimals: 18,\n logoURI: \"/tokens/usd.svg\",\n },\n USDC: {\n name: \"USD Coin\",\n symbol: \"USDC\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png\",\n type: \"ERC20\",\n },\n USDT: {\n name: \"Tether\",\n symbol: \"USDT\",\n decimals: 6,\n logoURI:\n \"https://assets-cdn.trustwallet.com/blockchains/ethereum/assets/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png\",\n type: \"ERC20\",\n },\n};\n\nexport function getTokenMetadata(symbol: string): Optional<TokenMetadata> {\n return tokenMetadata[symbol.toUpperCase()];\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nimport { getTokenAddresses } from \"./token-addresses\";\nimport { getTokenMetadata } from \"./token-metadata\";\n\nexport function getChainTokens(chainId: number): ChainToken[] {\n const addresses = getTokenAddresses(chainId);\n const tokens: ChainToken[] = [];\n\n for (const [symbol, address] of Object.entries(addresses)) {\n const metadata = getTokenMetadata(symbol);\n\n if (metadata && address) {\n tokens.push({ ...metadata, address, chainId });\n }\n }\n\n return tokens;\n}\n\nexport function getChainToken(\n chainId: number,\n symbol: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.symbol.toUpperCase() === symbol.toUpperCase(),\n );\n}\n\nexport function getChainTokenByAddress(\n chainId: number,\n address: string,\n): Optional<ChainToken> {\n const tokens = getChainTokens(chainId);\n return tokens.find(\n (token) => token.address.toLowerCase() === address.toLowerCase(),\n );\n}\n", "import type { ChainConfig } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\nimport type { Chain } from \"viem/chains\";\n\nimport { mainnetChains } from \"./mainnet-chains\";\nimport { testnetChains } from \"./testnet-chains\";\nimport { getChainTokens } from \"../tokens/chain-tokens\";\n\nexport const allChains = [...mainnetChains, ...testnetChains] as const;\n\nexport type SupportedChainId = (typeof allChains)[number][\"id\"];\n\nexport const chainById = new Map<number, Chain>(\n allChains.map((chain) => [chain.id, chain]),\n);\n\nexport function getChainById(chainId: number): Optional<Chain> {\n return chainById.get(chainId);\n}\n\nexport function getChainConfig(chainId: number): Optional<ChainConfig> {\n const chain = getChainById(chainId);\n if (!chain) return undefined;\n\n return {\n chain,\n isTestnet: chain.testnet ?? false,\n tokens: getChainTokens(chain.id),\n };\n}\n\nexport function getMainnetChains(): ChainConfig[] {\n return mainnetChains.map((chain) => ({\n chain,\n isTestnet: false,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getTestnetChains(): ChainConfig[] {\n return testnetChains.map((chain) => ({\n chain,\n isTestnet: true,\n tokens: getChainTokens(chain.id),\n }));\n}\n\nexport function getAllChains(): ChainConfig[] {\n return [...getMainnetChains(), ...getTestnetChains()];\n}\n\nexport function isSupportedChain(chainId: number): boolean {\n return chainById.has(chainId);\n}\n", "import type { ChainToken } from \"../types\";\n\nexport function filterTokens(\n tokens: ChainToken[],\n allowedSymbols: string[],\n disabledSymbols: string[],\n): ChainToken[] {\n let result = tokens;\n\n if (disabledSymbols.length > 0) {\n result = result.filter(\n (token) => !disabledSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n if (allowedSymbols && allowedSymbols.length > 0) {\n result = result.filter((token) =>\n allowedSymbols.includes(token.symbol.toUpperCase()),\n );\n }\n\n return result;\n}\n", "import type { ChainToken } from \"../types\";\nimport type { Optional } from \"@otim/utils/helpers\";\n\nexport interface TokenMaps {\n byAddress: Map<string, ChainToken>;\n bySymbol: Map<string, ChainToken>;\n}\n\nexport function createTokenMaps(tokens: ChainToken[]): TokenMaps {\n const byAddress = new Map<string, ChainToken>();\n const bySymbol = new Map<string, ChainToken>();\n\n tokens.forEach((token) => {\n byAddress.set(token.address.toLowerCase(), token);\n bySymbol.set(token.symbol.toLowerCase(), token);\n });\n\n return { byAddress, bySymbol };\n}\n\nexport function getTokenByAddress(\n maps: TokenMaps,\n address: string,\n): Optional<ChainToken> {\n if (!address) return undefined;\n return maps.byAddress.get(address.toLowerCase());\n}\n\nexport function getTokenBySymbol(\n maps: TokenMaps,\n symbol: string,\n): Optional<ChainToken> {\n if (!symbol) return undefined;\n return maps.bySymbol.get(symbol.toLowerCase());\n}\n", "/**\n * List of supported stablecoin symbols\n */\nconst stablecoinSymbols = [\"USDC\", \"USDT\"] as const;\n\n/**\n * Checks if a token symbol is a stablecoin\n * @param symbol - Token symbol to check (e.g., \"USDC\", \"ETH\")\n * @returns true if the symbol is a recognized stablecoin\n */\nexport function isStablecoin(symbol: string | string[]): boolean {\n if (typeof symbol === \"string\") {\n return stablecoinSymbols.includes(\n symbol as (typeof stablecoinSymbols)[number],\n );\n }\n\n return symbol.every((s) =>\n stablecoinSymbols.includes(s as (typeof stablecoinSymbols)[number]),\n );\n}\n", "import type { Optional } from \"@otim/utils/helpers\";\n\n/**\n * Mapping between chain ID numbers (used internally by otim) and\n * Lambda API chain ID strings (used by Lambda's API endpoints).\n *\n * Lambda uses string identifiers for chains while we use numeric chain IDs\n * from viem/wagmi. This map provides bidirectional conversion.\n */\n\n/**\n * Map from numeric chain ID to Lambda chain ID string\n */\nexport const CHAIN_ID_TO_LAMBDA_ID: Record<number, string> = {\n /** Mainnet chains */\n 1: \"ethereum\",\n 8453: \"base\",\n 42161: \"arbitrum\",\n 10: \"optimism\",\n 56: \"binance-smart-chain\",\n 130: \"unichain\",\n 137: \"polygon\",\n} as const;\n\n/**\n * Map from Lambda chain ID string to numeric chain ID\n */\nexport const LAMBDA_ID_TO_CHAIN_ID: Record<string, number> = {\n ethereum: 1,\n base: 8453,\n arbitrum: 42161,\n optimism: 10,\n \"binance-smart-chain\": 56,\n unichain: 130,\n polygon: 137,\n} as const;\n\n/**\n * Convert a numeric chain ID to Lambda's chain ID string\n * @param chainId - The numeric chain ID\n * @returns The Lambda chain ID string, or undefined if not supported by Lambda\n * @example\n * ```ts\n * chainIdToLambdaId(8453) // \"base\"\n * chainIdToLambdaId(1) // \"ethereum\"\n * ```\n */\n\nexport function chainIdToLambdaId(chainId: number): Optional<string> {\n return CHAIN_ID_TO_LAMBDA_ID[chainId];\n}\n\n/**\n * Convert a Lambda chain ID string to numeric chain ID\n * @param lambdaId - The Lambda chain ID string\n * @returns The numeric chain ID, or undefined if not recognized\n * @example\n * ```ts\n * lambdaIdToChainId(\"base\") // 8453\n * lambdaIdToChainId(\"ethereum\") // 1\n * ```\n */\nexport function lambdaIdToChainId(lambdaId: string): Optional<number> {\n return LAMBDA_ID_TO_CHAIN_ID[lambdaId];\n}\n\n/**\n * Check if a chain ID is supported by Lambda\n * @param chainId - The numeric chain ID to check\n * @returns true if the chain is supported by Lambda\n */\nexport function isLambdaSupportedChain(chainId: number): boolean {\n return chainId in CHAIN_ID_TO_LAMBDA_ID;\n}\n\n/**\n * Get all chain IDs supported by Lambda\n * @returns Array of numeric chain IDs that are supported by Lambda\n */\nexport function getLambdaSupportedChainIds(): number[] {\n return Object.keys(CHAIN_ID_TO_LAMBDA_ID).map(Number);\n}\n\n/**\n * Get all Lambda chain ID strings\n * @returns Array of Lambda chain ID strings\n */\nexport function getLambdaChainIds(): string[] {\n return Object.values(CHAIN_ID_TO_LAMBDA_ID);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["arbitrum", "base", "bsc", "mainnet", "optimism", "polygon", "unichain", "arbitrumSepolia", "baseSepolia", "bscTestnet", "optimismSepolia", "polygonAmoy", "sepolia", "unichainSepolia", "sepolia", "baseSepolia", "arbitrumSepolia", "optimismSepolia", "bscTestnet", "unichainSepolia", "polygonAmoy", "arbitrum", "arbitrumSepolia", "base", "baseSepolia", "bsc", "bscTestnet", "mainnet", "optimism", "optimismSepolia", "polygon", "polygonAmoy", "sepolia", "unichain", "unichainSepolia", "mainnet", "base", "arbitrum", "optimism", "sepolia", "baseSepolia", "arbitrumSepolia", "optimismSepolia", "bsc", "bscTestnet", "unichain", "unichainSepolia", "polygon", "polygonAmoy"]
7
7
  }
@@ -181,7 +181,7 @@ var isNullAddress = (address) => {
181
181
  var import_zod = __toESM(require("zod"));
182
182
 
183
183
  // src/env.ts
184
- var BUILD_MODE = "development";
184
+ var BUILD_MODE = "production";
185
185
 
186
186
  // src/helpers/logger.ts
187
187
  var Logger = class {
@@ -64,7 +64,7 @@ var isNullAddress = (address) => {
64
64
  import z from "zod";
65
65
 
66
66
  // src/env.ts
67
- var BUILD_MODE = "development";
67
+ var BUILD_MODE = "production";
68
68
 
69
69
  // src/helpers/logger.ts
70
70
  var Logger = class {
@@ -75,7 +75,7 @@ module.exports = __toCommonJS(server_exports);
75
75
  var import_axios = __toESM(require("axios"));
76
76
 
77
77
  // src/env.ts
78
- var BUILD_MODE = "development";
78
+ var BUILD_MODE = "production";
79
79
  var APP_API_URL = "https://app.otim.com/api";
80
80
 
81
81
  // src/helpers/logger.ts
@@ -6,7 +6,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
6
6
  import axios from "axios";
7
7
 
8
8
  // src/env.ts
9
- var BUILD_MODE = "development";
9
+ var BUILD_MODE = "production";
10
10
  var APP_API_URL = "https://app.otim.com/api";
11
11
 
12
12
  // src/helpers/logger.ts
@@ -74,7 +74,7 @@ var pecorinoHost = {
74
74
  };
75
75
 
76
76
  // src/env.ts
77
- var BUILD_MODE = "development";
77
+ var BUILD_MODE = "production";
78
78
 
79
79
  // src/chains/config/mainnet-chains.ts
80
80
  var import_chains = require("viem/chains");
@@ -49,7 +49,7 @@ var pecorinoHost = {
49
49
  };
50
50
 
51
51
  // src/env.ts
52
- var BUILD_MODE = "development";
52
+ var BUILD_MODE = "production";
53
53
 
54
54
  // src/chains/config/mainnet-chains.ts
55
55
  import { arbitrum, base, bsc, mainnet, optimism, polygon, unichain } from "viem/chains";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otim/utils",
3
- "version": "0.0.2-development.0",
3
+ "version": "0.0.2",
4
4
  "description": "Shared utilities for Otim apps and packages",
5
5
  "keywords": [
6
6
  "otim",
@@ -190,7 +190,7 @@
190
190
  "abitype": "^1.1.2",
191
191
  "axios": "^1.13.2",
192
192
  "viem": "^2.39.3",
193
- "wagmi": "^3.0.1",
193
+ "wagmi": "^2.19.5",
194
194
  "zod": "^4.1.12"
195
195
  },
196
196
  "devDependencies": {
@@ -203,8 +203,8 @@
203
203
  "typescript": "^5.9.3",
204
204
  "ws": "^8.18.3",
205
205
  "@otim/builder": "0.0.0",
206
- "@otim/typescript-config": "0.0.1",
207
- "@otim/eslint-config": "0.0.1"
206
+ "@otim/eslint-config": "0.0.1",
207
+ "@otim/typescript-config": "0.0.1"
208
208
  },
209
209
  "engines": {
210
210
  "node": ">=18.0.0"