UNPKG

@cobaltx/sdk-v2

Version:

An SDK for building applications on top of CobaltX.

1 lines 8.98 kB
{"version":3,"sources":["../../src/module/token.ts","../../src/cobaltx/token/constant.ts","../../src/common/pubKey.ts"],"sourcesContent":["import { PublicKey } from \"@solana/web3.js\";\n\nimport { TOKEN_WSOL } from \"../cobaltx/token/constant\";\nimport { PublicKeyish, SOLMint, validateAndParsePublicKey } from \"../common/pubKey\";\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 { PublicKey } from \"@solana/web3.js\";\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: \"ETH\",\n name: \"Ethereum\",\n logoURI: `https://raw.githubusercontent.com/cobaltx-io/tokens/main/logo/So11111111111111111111111111111111111111112.png`,\n tags: [],\n priority: 2,\n type: \"cobaltx\",\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: \"WETH\",\n name: \"Wrapped ETH\",\n logoURI: `https://raw.githubusercontent.com/cobaltx-io/tokens/main/logo/So11111111111111111111111111111111111111112.png`,\n tags: [],\n priority: 2,\n type: \"cobaltx\",\n extensions: {\n coingeckoId: \"solana\",\n },\n};\n","import { AccountMeta, PublicKey, SystemProgram, SYSVAR_RENT_PUBKEY } from \"@solana/web3.js\";\nimport { TOKEN_PROGRAM_ID } from \"@solana/spl-token\";\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 USDCMint = new PublicKey(\"a2Gt18uJC8puJT9JRYQLU6rPi6okxQb4WqCjwtYshZB\");\nexport const USDTMint = new PublicKey(\"bXSKiFqYrALF9gJy1KqHm8tv4QXk8nCgbLN8WRsGEbh\");\nexport const WSOLMint = new PublicKey(\"So11111111111111111111111111111111111111112\");\nexport const SOLMint = PublicKey.default;\nexport const BONKMint = new PublicKey(\"71kRXzJMvSeArtXYNEWa8KAjpRJosdMQ7Dpgy5Jt5zfd\");\nexport const SOL_Mint = new PublicKey(\"ERFzpDteGNo8LTDKW1WwVGrkRMmA2y9WZHXNHxMA6BSV\");\n\nexport function solToWSol(mint: PublicKeyish): PublicKey {\n return validateAndParsePublicKey({ publicKey: mint, transformSol: true });\n}\n"],"mappings":"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","names":["PublicKey","TOKEN_PROGRAM_ID","PublicKey","SOL_INFO","TOKEN_WSOL","PublicKey","SystemProgram","SYSVAR_RENT_PUBKEY","TOKEN_PROGRAM_ID","accountMeta","pubkey","isSigner","isWritable","commonSystemAccountMeta","validateAndParsePublicKey","orgPubKey","transformSol","publicKey","tryParsePublicKey","SOLMint","WSOLMint","v","MEMO_PROGRAM_ID","MEMO_PROGRAM_ID2","RENT_PROGRAM_ID","CLOCK_PROGRAM_ID","METADATA_PROGRAM_ID","INSTRUCTION_PROGRAM_ID","SYSTEM_PROGRAM_ID","USDCMint","USDTMint","BONKMint","SOL_Mint","_Token","mint","decimals","symbol","name","skipMint","isToken2022","SOLMint","PublicKey","TOKEN_WSOL","validateAndParsePublicKey","other","Token"]}