{"version":3,"sources":["../../src/module/token.ts","../../src/common/pubKey.ts","../../src/raydium/token/constant.ts"],"sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\n\nimport { PublicKeyish, SOLMint, validateAndParsePublicKey } from \"../common/pubKey\";\nimport { TOKEN_WSOL } from \"../raydium/token/constant\";\n\n/**\n * A token is any fungible financial instrument on Solana, including SOL and all SPL tokens.\n */\nexport interface TokenProps {\n  mint: PublicKeyish;\n  decimals: number;\n  symbol?: string;\n  name?: string;\n  skipMint?: boolean;\n  isToken2022?: boolean;\n}\n\nexport class Token {\n  public readonly symbol?: string;\n  public readonly name?: string;\n  public readonly decimals: number;\n  public readonly isToken2022: boolean;\n\n  public readonly mint: PublicKey;\n  public static readonly WSOL: Token = new Token({\n    ...TOKEN_WSOL,\n    mint: TOKEN_WSOL.address,\n  });\n\n  /**\n   *\n   * @param mint - pass \"sol\" as mint will auto generate wsol token config\n   */\n  public constructor({ mint, decimals, symbol, name, skipMint = false, isToken2022 = false }: TokenProps) {\n    if (mint === SOLMint.toBase58() || (mint instanceof PublicKey && SOLMint.equals(mint))) {\n      this.decimals = TOKEN_WSOL.decimals;\n      this.symbol = TOKEN_WSOL.symbol;\n      this.name = TOKEN_WSOL.name;\n      this.mint = new PublicKey(TOKEN_WSOL.address);\n      this.isToken2022 = false;\n      return;\n    }\n\n    this.decimals = decimals;\n    this.symbol = symbol || mint.toString().substring(0, 6);\n    this.name = name || mint.toString().substring(0, 6);\n    this.mint = skipMint ? PublicKey.default : validateAndParsePublicKey({ publicKey: mint });\n    this.isToken2022 = isToken2022;\n  }\n\n  public equals(other: Token): boolean {\n    // short circuit on reference equality\n    if (this === other) {\n      return true;\n    }\n    return this.mint.equals(other.mint);\n  }\n}\n","import { TOKEN_PROGRAM_ID } from \"@solana/spl-token\";\nimport { AccountMeta, PublicKey, SystemProgram, SYSVAR_RENT_PUBKEY } from \"@solana/web3.js\";\n\ninterface AccountMetaProps {\n  pubkey: PublicKey;\n  isSigner?: boolean;\n  isWritable?: boolean;\n}\n\nexport function accountMeta({ pubkey, isSigner = false, isWritable = true }: AccountMetaProps): AccountMeta {\n  return {\n    pubkey,\n    isWritable,\n    isSigner,\n  };\n}\n\nexport const commonSystemAccountMeta = [\n  accountMeta({ pubkey: TOKEN_PROGRAM_ID, isWritable: false }),\n  accountMeta({ pubkey: SystemProgram.programId, isWritable: false }),\n  accountMeta({ pubkey: SYSVAR_RENT_PUBKEY, isWritable: false }),\n];\n\nexport type PublicKeyish = PublicKey | string;\n\nexport function validateAndParsePublicKey({\n  publicKey: orgPubKey,\n  transformSol,\n}: {\n  publicKey: PublicKeyish;\n  transformSol?: boolean;\n}): PublicKey {\n  const publicKey = tryParsePublicKey(orgPubKey.toString());\n\n  if (publicKey instanceof PublicKey) {\n    if (transformSol && publicKey.equals(SOLMint)) return WSOLMint;\n    return publicKey;\n  }\n\n  if (transformSol && publicKey.toString() === SOLMint.toBase58()) return WSOLMint;\n\n  if (typeof publicKey === \"string\") {\n    if (publicKey === PublicKey.default.toBase58()) return PublicKey.default;\n    try {\n      const key = new PublicKey(publicKey);\n      return key;\n    } catch {\n      throw new Error(\"invalid public key\");\n    }\n  }\n\n  throw new Error(\"invalid public key\");\n}\n\nexport function tryParsePublicKey(v: string): PublicKey | string {\n  try {\n    return new PublicKey(v);\n  } catch (e) {\n    return v;\n  }\n}\n\nexport const MEMO_PROGRAM_ID = new PublicKey(\"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\");\nexport const MEMO_PROGRAM_ID2 = new PublicKey(\"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\");\nexport const RENT_PROGRAM_ID = new PublicKey(\"SysvarRent111111111111111111111111111111111\");\nexport const CLOCK_PROGRAM_ID = new PublicKey(\"SysvarC1ock11111111111111111111111111111111\");\nexport const METADATA_PROGRAM_ID = new PublicKey(\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\");\nexport const INSTRUCTION_PROGRAM_ID = new PublicKey(\"Sysvar1nstructions1111111111111111111111111\");\nexport const SYSTEM_PROGRAM_ID = SystemProgram.programId;\n\nexport const RAYMint = new PublicKey(\"4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R\");\nexport const PAIMint = new PublicKey(\"Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS\");\nexport const SRMMint = new PublicKey(\"SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt\");\nexport const USDCMint = new PublicKey(\"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\");\nexport const USDTMint = new PublicKey(\"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\");\nexport const mSOLMint = new PublicKey(\"mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So\");\nexport const stSOLMint = new PublicKey(\"7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj\");\nexport const USDHMint = new PublicKey(\"USDH1SM1ojwWUga67PGrgFWUHibbjqMvuMaDkRJTgkX\");\nexport const NRVMint = new PublicKey(\"NRVwhjBQiUPYtfDT5zRBVJajzFQHaBUNtC7SNVvqRFa\");\nexport const ANAMint = new PublicKey(\"ANAxByE6G2WjFp7A4NqtWYXb3mgruyzZYg3spfxe6Lbo\");\nexport const ETHMint = new PublicKey(\"7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs\");\nexport const WSOLMint = new PublicKey(\"So11111111111111111111111111111111111111112\");\nexport const SOLMint = PublicKey.default;\n\nexport function solToWSol(mint: PublicKeyish): PublicKey {\n  return validateAndParsePublicKey({ publicKey: mint, transformSol: true });\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport { TOKEN_PROGRAM_ID } from \"@solana/spl-token\";\nimport { TokenInfo } from \"./type\";\n\nexport const SOL_INFO: TokenInfo = {\n  chainId: 101,\n  address: PublicKey.default.toBase58(),\n  programId: TOKEN_PROGRAM_ID.toBase58(),\n  decimals: 9,\n  symbol: \"SOL\",\n  name: \"solana\",\n  logoURI: `https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png`,\n  tags: [],\n  priority: 2,\n  type: \"raydium\",\n  extensions: {\n    coingeckoId: \"solana\",\n  },\n};\n\nexport const TOKEN_WSOL: TokenInfo = {\n  chainId: 101,\n  address: \"So11111111111111111111111111111111111111112\",\n  programId: TOKEN_PROGRAM_ID.toBase58(),\n  decimals: 9,\n  symbol: \"WSOL\",\n  name: \"Wrapped SOL\",\n  logoURI: `https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png`,\n  tags: [],\n  priority: 2,\n  type: \"raydium\",\n  extensions: {\n    coingeckoId: \"solana\",\n  },\n};\n"],"mappings":"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","names":[]}