{"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 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\");\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":[]}