@swapkit/toolboxes 4.1.3 → 4.1.4

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.
@@ -1,4 +1,4 @@
1
- var y=Object.create;var{getPrototypeOf:A,defineProperty:L,getOwnPropertyNames:h,getOwnPropertyDescriptor:p}=Object,k=Object.prototype.hasOwnProperty;var O=(j,q,w)=>{w=j!=null?y(A(j)):{};let B=q||!j||!j.__esModule?L(w,"default",{value:j,enumerable:!0}):w;for(let F of h(j))if(!k.call(B,F))L(B,F,{get:()=>j[F],enumerable:!0});return B},D=new WeakMap,C=(j)=>{var q=D.get(j),w;if(q)return q;if(q=L({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")h(j).map((B)=>!k.call(q,B)&&L(q,B,{get:()=>j[B],enumerable:!(w=p(j,B))||w.enumerable}));return D.set(j,q),q};var P=(j,q)=>{for(var w in q)L(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(B)=>q[w]=()=>B})};var T=(j,q)=>()=>(j&&(q=j(j=0)),q);async function l(j){try{let q=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${j}`);if(!q.ok)return null;return await q.json()}catch{return null}}async function u(j){let q=await X(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:B}=await import("@solana/spl-token"),F=new w(j),J=[],G=await q.getBalance(F);if(G>0){let{baseDecimal:Q}=z.getChainConfig(z.Chain.Solana);J.push(z.AssetValue.from({chain:z.Chain.Solana,fromBaseDecimal:Q,value:G}))}let N=await q.getParsedTokenAccountsByOwner(F,{programId:B});for(let{account:Q}of N.value){let R=Q.data.parsed.info,U=R.mint,Y=R.tokenAmount.amount;if(Number(Y)===0)continue;let _=await l(U),$=_?.symbol||"UNKNOWN",Z=_?.decimals||R.tokenAmount.decimals;J.push(z.AssetValue.from({asset:`${z.Chain.Solana}.${$}-${U}`,fromBaseDecimal:Z,value:Y}))}return J}async function x(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch{return!1}}}async function m(j){let q=j&&"index"in j?j.index||0:0,w=z.derivationPathToString(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:z.updateDerivationPath(z.NetworkDerivationPath[z.Chain.Solana],{index:q})),B=await W.match(j).with({phrase:W.P.string},({phrase:G})=>M({derivationPath:w,phrase:G})).with({signer:W.P.any},({signer:G})=>G).otherwise(()=>{return});function F(){return B?.publicKey?v(B.publicKey):""}function J(G){let N=G||F();if(!N)throw new z.SwapKitError("core_wallet_connection_not_found");return u(N)}return{broadcastTransaction:I(X),createKeysForPath:M,createTransaction:H(X),createTransactionFromInstructions:a,estimateTransactionFee:d(X),getAddress:F,getAddressFromPubKey:v,getAddressValidator:x,getBalance:J,getConnection:X,getPubkeyFromAddress:S,signTransaction:r(X,B),transfer:o(X,B)}}function d(j){return async({recipient:q,assetValue:w,memo:B,isProgramDerivedAddress:F,sender:J})=>{let G=await j(),Q=(await H(j)({assetValue:w,isProgramDerivedAddress:F,memo:B,recipient:q,sender:J})).compileMessage(),R=await G.getFeeForMessage(Q);if(R.value===null)throw new z.SwapKitError("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:U}=z.getChainConfig(z.Chain.Solana);return z.AssetValue.from({chain:z.Chain.Solana,fromBaseDecimal:U,value:R.value})}}async function X(){let{Connection:j}=await import("@solana/web3.js"),q=await z.getRPCUrl(z.Chain.Solana);return new j(q,"confirmed")}function g(j){return async({assetValue:q,recipient:w,sender:B,isProgramDerivedAddress:F})=>{let J=await j(),G=await S(B);if(q.isGasAsset){let{Transaction:N,SystemProgram:Q,PublicKey:R}=await import("@solana/web3.js");return new N().add(Q.transfer({fromPubkey:G,lamports:q.getBaseValue("number"),toPubkey:new R(w)}))}if(q.address)return c({amount:q.getBaseValue("number"),connection:J,decimals:q.decimal,from:G,isProgramDerivedAddress:F,recipient:w,tokenAddress:q.address});return}}async function c({tokenAddress:j,recipient:q,from:w,connection:B,amount:F,decimals:J,isProgramDerivedAddress:G}){let{getAssociatedTokenAddress:N,getAccount:Q,createAssociatedTokenAccountInstruction:R,createTransferCheckedInstruction:U}=await import("@solana/spl-token"),{Transaction:Y,PublicKey:_}=await import("@solana/web3.js"),$=new Y,Z=new _(j),b=await N(Z,w),f=new _(q),E=await N(Z,f,G),V=!1;try{await Q(B,E),V=!0}catch{}if(!V)$.add(R(w,E,f,Z));return $.add(U(b,Z,E,w,F,J)),$}function H(j){return async({recipient:q,assetValue:w,memo:B,isProgramDerivedAddress:F,sender:J})=>{let{createMemoInstruction:G}=await import("@solana/spl-memo"),N=await S(J),Q=await x();if(!(F||Q(q)))throw new z.SwapKitError("core_transaction_invalid_recipient_address");let R=await j(),U=await g(j)({assetValue:w,isProgramDerivedAddress:F,recipient:q,sender:J});if(!U)throw new z.SwapKitError("core_transaction_invalid_sender_address");if(B)U.add(G(B));let Y=await R.getLatestBlockhash();return U.recentBlockhash=Y.blockhash,U.feePayer=N,U}}async function a({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new z.SwapKitError("core_transaction_invalid_sender_address");return w}function o(j,q){return async({recipient:w,assetValue:B,memo:F,isProgramDerivedAddress:J})=>{if(!q)throw new z.SwapKitError("core_transaction_invalid_sender_address");let G=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),N=await H(j)({assetValue:B,isProgramDerivedAddress:J,memo:F,recipient:w,sender:G});if("signTransaction"in q){let Q=await q.signTransaction(N);return I(j)(Q)}return N.sign(q),I(j)(N)}}function I(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function r(j,q){return async(w)=>{let{VersionedTransaction:B}=await import("@solana/web3.js");if(!q)throw new z.SwapKitError("toolbox_solana_no_signer");if(!(w instanceof B)){let J=await(await j()).getLatestBlockhash();w.recentBlockhash=J.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function M({phrase:j,derivationPath:q=z.DerivationPath.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:B}=await import("@scure/bip39"),{Keypair:F}=await import("@solana/web3.js"),J=B(j),G=w.fromMasterSeed(J);return F.fromSeed(G.derive(q,!0).privateKey)}function v(j){return j.toString()}async function S(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var z,W;var K=T(()=>{z=require("@swapkit/helpers"),W=require("ts-pattern")});var s={};P(s,{getSolanaToolbox:()=>m,getSolanaAddressValidator:()=>x,createKeysForPath:()=>M});module.exports=C(s);var t=T(()=>{K()});t();
1
+ var A=Object.create;var{getPrototypeOf:p,defineProperty:L,getOwnPropertyNames:h,getOwnPropertyDescriptor:C}=Object,k=Object.prototype.hasOwnProperty;var O=(j,q,w)=>{w=j!=null?A(p(j)):{};let z=q||!j||!j.__esModule?L(w,"default",{value:j,enumerable:!0}):w;for(let F of h(j))if(!k.call(z,F))L(z,F,{get:()=>j[F],enumerable:!0});return z},D=new WeakMap,P=(j)=>{var q=D.get(j),w;if(q)return q;if(q=L({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")h(j).map((z)=>!k.call(q,z)&&L(q,z,{get:()=>j[z],enumerable:!(w=C(j,z))||w.enumerable}));return D.set(j,q),q};var l=(j,q)=>{for(var w in q)L(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(z)=>q[w]=()=>z})};var T=(j,q)=>()=>(j&&(q=j(j=0)),q);async function K(j){let q=B.AssetValue.from({address:j,chain:B.Chain.Solana});if(q.symbol!=="UNKNOWN")return{decimals:q.decimal||0,id:j,logoURI:q.getIconUrl(),name:q.symbol,symbol:q.ticker};let w=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(j)}`;try{let z=await fetch(w);if(!z.ok)return null;let F=await z.json();if(!Array.isArray(F)||F.length===0)return null;return F.find((G)=>G.id===j)||null}catch{return null}}async function u(j){let q=await X(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:z}=await import("@solana/spl-token"),F=new w(j),J=[],G=await q.getBalance(F);if(G>0){let{baseDecimal:Q}=B.getChainConfig(B.Chain.Solana);J.push(B.AssetValue.from({chain:B.Chain.Solana,fromBaseDecimal:Q,value:G}))}let N=await q.getParsedTokenAccountsByOwner(F,{programId:z});for(let{account:Q}of N.value){let R=Q.data.parsed.info,U=R.mint,Y=R.tokenAmount.amount;if(Number(Y)===0)continue;let _=await K(U),$=_?.symbol||"UNKNOWN",Z=_?.decimals||R.tokenAmount.decimals;J.push(B.AssetValue.from({asset:`${B.Chain.Solana}.${$}-${U}`,fromBaseDecimal:Z,value:Y}))}return J}async function x(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch{return!1}}}async function m(j){let q=j&&"index"in j?j.index||0:0,w=B.derivationPathToString(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:B.updateDerivationPath(B.NetworkDerivationPath[B.Chain.Solana],{index:q})),z=await W.match(j).with({phrase:W.P.string},({phrase:G})=>M({derivationPath:w,phrase:G})).with({signer:W.P.any},({signer:G})=>G).otherwise(()=>{return});function F(){return z?.publicKey?v(z.publicKey):""}function J(G){let N=G||F();if(!N)throw new B.SwapKitError("core_wallet_connection_not_found");return u(N)}return{broadcastTransaction:I(X),createKeysForPath:M,createTransaction:H(X),createTransactionFromInstructions:a,estimateTransactionFee:d(X),getAddress:F,getAddressFromPubKey:v,getAddressValidator:x,getBalance:J,getConnection:X,getPubkeyFromAddress:S,signTransaction:r(X,z),transfer:o(X,z)}}function d(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:F,sender:J})=>{let G=await j(),Q=(await H(j)({assetValue:w,isProgramDerivedAddress:F,memo:z,recipient:q,sender:J})).compileMessage(),R=await G.getFeeForMessage(Q);if(R.value===null)throw new B.SwapKitError("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:U}=B.getChainConfig(B.Chain.Solana);return B.AssetValue.from({chain:B.Chain.Solana,fromBaseDecimal:U,value:R.value})}}async function X(){let{Connection:j}=await import("@solana/web3.js"),q=await B.getRPCUrl(B.Chain.Solana);return new j(q,"confirmed")}function g(j){return async({assetValue:q,recipient:w,sender:z,isProgramDerivedAddress:F})=>{let J=await j(),G=await S(z);if(q.isGasAsset){let{Transaction:N,SystemProgram:Q,PublicKey:R}=await import("@solana/web3.js");return new N().add(Q.transfer({fromPubkey:G,lamports:q.getBaseValue("number"),toPubkey:new R(w)}))}if(q.address)return c({amount:q.getBaseValue("number"),connection:J,decimals:q.decimal,from:G,isProgramDerivedAddress:F,recipient:w,tokenAddress:q.address});return}}async function c({tokenAddress:j,recipient:q,from:w,connection:z,amount:F,decimals:J,isProgramDerivedAddress:G}){let{getAssociatedTokenAddress:N,getAccount:Q,createAssociatedTokenAccountInstruction:R,createTransferCheckedInstruction:U}=await import("@solana/spl-token"),{Transaction:Y,PublicKey:_}=await import("@solana/web3.js"),$=new Y,Z=new _(j),y=await N(Z,w),f=new _(q),E=await N(Z,f,G),V=!1;try{await Q(z,E),V=!0}catch{}if(!V)$.add(R(w,E,f,Z));return $.add(U(y,Z,E,w,F,J)),$}function H(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:F,sender:J})=>{let{createMemoInstruction:G}=await import("@solana/spl-memo"),N=await S(J),Q=await x();if(!(F||Q(q)))throw new B.SwapKitError("core_transaction_invalid_recipient_address");let R=await j(),U=await g(j)({assetValue:w,isProgramDerivedAddress:F,recipient:q,sender:J});if(!U)throw new B.SwapKitError("core_transaction_invalid_sender_address");if(z)U.add(G(z));let Y=await R.getLatestBlockhash();return U.recentBlockhash=Y.blockhash,U.feePayer=N,U}}async function a({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new B.SwapKitError("core_transaction_invalid_sender_address");return w}function o(j,q){return async({recipient:w,assetValue:z,memo:F,isProgramDerivedAddress:J})=>{if(!q)throw new B.SwapKitError("core_transaction_invalid_sender_address");let G=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),N=await H(j)({assetValue:z,isProgramDerivedAddress:J,memo:F,recipient:w,sender:G});if("signTransaction"in q){let Q=await q.signTransaction(N);return I(j)(Q)}return N.sign(q),I(j)(N)}}function I(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function r(j,q){return async(w)=>{let{VersionedTransaction:z}=await import("@solana/web3.js");if(!q)throw new B.SwapKitError("toolbox_solana_no_signer");if(!(w instanceof z)){let J=await(await j()).getLatestBlockhash();w.recentBlockhash=J.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function M({phrase:j,derivationPath:q=B.DerivationPath.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:z}=await import("@scure/bip39"),{Keypair:F}=await import("@solana/web3.js"),J=z(j),G=w.fromMasterSeed(J);return F.fromSeed(G.derive(q,!0).privateKey)}function v(j){return j.toString()}async function S(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var B,W;var b=T(()=>{B=require("@swapkit/helpers"),W=require("ts-pattern")});var s={};l(s,{getSolanaToolbox:()=>m,getSolanaAddressValidator:()=>x,fetchTokenMetaData:()=>K,createKeysForPath:()=>M});module.exports=P(s);var t=T(()=>{b()});t();
2
2
 
3
- //# debugId=94732C88A2A5B1DC64756E2164756E21
3
+ //# debugId=237EE01709B3BF1D64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/solana/toolbox.ts", "../src/solana/index.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n Connection,\n PublicKey,\n Signer,\n Transaction,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport {\n AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericCreateTransactionParams,\n getChainConfig,\n getRPCUrl,\n NetworkDerivationPath,\n SwapKitError,\n updateDerivationPath,\n} from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport type { SolanaCreateTransactionParams, SolanaProvider, SolanaTransferParams } from \"./index\";\n\ntype SolanaSigner = SolanaProvider | Signer;\n\ntype TokenMetadata = {\n name: string;\n symbol: string;\n decimals: number;\n logoURI?: string;\n tags?: string[];\n daily_volume?: number;\n};\n\nasync function fetchTokenMetaData(mintAddress: string): Promise<TokenMetadata | null> {\n try {\n const response = await fetch(`https://lite-api.jup.ag/tokens/v1/token/${mintAddress}`);\n if (!response.ok) return null;\n return await response.json();\n } catch {\n return null;\n }\n}\n\nasync function getSolanaBalance(address: string) {\n const connection = await getConnection();\n const { PublicKey } = await import(\"@solana/web3.js\");\n const { TOKEN_PROGRAM_ID } = await import(\"@solana/spl-token\");\n const publicKey = new PublicKey(address);\n\n const balances: AssetValue[] = [];\n\n // Get SOL balance\n const solBalance = await connection.getBalance(publicKey);\n if (solBalance > 0) {\n const { baseDecimal } = getChainConfig(Chain.Solana);\n balances.push(AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: solBalance }));\n }\n\n // Get token balances\n const tokenAccounts = await connection.getParsedTokenAccountsByOwner(publicKey, { programId: TOKEN_PROGRAM_ID });\n\n for (const { account } of tokenAccounts.value) {\n const tokenInfo = account.data.parsed.info;\n const mintAddress = tokenInfo.mint;\n const amount = tokenInfo.tokenAmount.amount;\n\n if (Number(amount) === 0) continue;\n\n // Fetch token metadata from Jupiter\n const metadata = await fetchTokenMetaData(mintAddress);\n const symbol = metadata?.symbol || \"UNKNOWN\";\n const decimals = metadata?.decimals || tokenInfo.tokenAmount.decimals;\n\n balances.push(\n AssetValue.from({ asset: `${Chain.Solana}.${symbol}-${mintAddress}`, fromBaseDecimal: decimals, value: amount }),\n );\n }\n\n return balances;\n}\n\nexport async function getSolanaAddressValidator() {\n const { PublicKey } = await import(\"@solana/web3.js\");\n\n return (address: string) => {\n try {\n const pubkey = new PublicKey(address);\n return PublicKey.isOnCurve(pubkey.toBytes());\n } catch {\n return false;\n }\n };\n}\n\nexport async function getSolanaToolbox(\n toolboxParams?: { signer?: SolanaSigner } | { phrase?: string; index?: number; derivationPath?: DerivationPathArray },\n) {\n const index = toolboxParams && \"index\" in toolboxParams ? toolboxParams.index || 0 : 0;\n const derivationPath = derivationPathToString(\n toolboxParams && \"derivationPath\" in toolboxParams && toolboxParams.derivationPath\n ? toolboxParams.derivationPath\n : updateDerivationPath(NetworkDerivationPath[Chain.Solana], { index }),\n );\n\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, ({ phrase }) => createKeysForPath({ derivationPath, phrase }))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n function getAddress() {\n return signer?.publicKey ? getAddressFromPubKey(signer.publicKey) : \"\";\n }\n\n function getBalance(addressParam?: string) {\n const address = addressParam || getAddress();\n if (!address) throw new SwapKitError(\"core_wallet_connection_not_found\");\n return getSolanaBalance(address);\n }\n\n return {\n broadcastTransaction: broadcastTransaction(getConnection),\n createKeysForPath,\n createTransaction: createTransaction(getConnection),\n createTransactionFromInstructions,\n estimateTransactionFee: estimateTransactionFee(getConnection),\n getAddress,\n getAddressFromPubKey,\n getAddressValidator: getSolanaAddressValidator,\n getBalance,\n getConnection,\n getPubkeyFromAddress,\n signTransaction: signTransaction(getConnection, signer),\n transfer: transfer(getConnection, signer),\n };\n}\n\nfunction estimateTransactionFee(getConnection: () => Promise<Connection>) {\n return async ({\n recipient,\n assetValue,\n memo,\n isProgramDerivedAddress,\n sender,\n }: Omit<GenericCreateTransactionParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean }) => {\n const connection = await getConnection();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n const message = transaction.compileMessage();\n const feeInLamports = await connection.getFeeForMessage(message);\n\n if (feeInLamports.value === null) {\n throw new SwapKitError(\"toolbox_solana_fee_estimation_failed\", \"Could not estimate Solana fee.\");\n }\n\n const { baseDecimal } = getChainConfig(Chain.Solana);\n\n return AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: feeInLamports.value });\n };\n}\n\nasync function getConnection() {\n const { Connection } = await import(\"@solana/web3.js\");\n const rpcUrl = await getRPCUrl(Chain.Solana);\n return new Connection(rpcUrl, \"confirmed\");\n}\n\nfunction createAssetTransaction(getConnection: () => Promise<Connection>) {\n return async ({ assetValue, recipient, sender, isProgramDerivedAddress }: SolanaCreateTransactionParams) => {\n const connection = await getConnection();\n const fromPubkey = await getPubkeyFromAddress(sender);\n\n if (assetValue.isGasAsset) {\n const { Transaction, SystemProgram, PublicKey } = await import(\"@solana/web3.js\");\n\n return new Transaction().add(\n SystemProgram.transfer({\n fromPubkey: fromPubkey,\n lamports: assetValue.getBaseValue(\"number\"),\n toPubkey: new PublicKey(recipient),\n }),\n );\n }\n\n if (assetValue.address) {\n return createSolanaTokenTransaction({\n amount: assetValue.getBaseValue(\"number\"),\n connection,\n decimals: assetValue.decimal as number,\n from: fromPubkey,\n isProgramDerivedAddress,\n recipient,\n tokenAddress: assetValue.address,\n });\n }\n\n return undefined;\n };\n}\n\nasync function createSolanaTokenTransaction({\n tokenAddress,\n recipient,\n from,\n connection,\n amount,\n decimals,\n isProgramDerivedAddress,\n}: {\n tokenAddress: string;\n recipient: string;\n from: PublicKey;\n connection: Connection;\n amount: number;\n decimals: number;\n isProgramDerivedAddress?: boolean;\n}) {\n const {\n getAssociatedTokenAddress,\n getAccount,\n createAssociatedTokenAccountInstruction,\n createTransferCheckedInstruction,\n } = await import(\"@solana/spl-token\");\n const { Transaction, PublicKey } = await import(\"@solana/web3.js\");\n\n const transaction = new Transaction();\n const tokenPublicKey = new PublicKey(tokenAddress);\n const fromSPLAddress = await getAssociatedTokenAddress(tokenPublicKey, from);\n\n const recipientPublicKey = new PublicKey(recipient);\n const recipientSPLAddress = await getAssociatedTokenAddress(\n tokenPublicKey,\n recipientPublicKey,\n isProgramDerivedAddress,\n );\n\n let recipientAccountExists = false;\n try {\n await getAccount(connection, recipientSPLAddress);\n recipientAccountExists = true;\n } catch {\n // Recipient's associated token account doesn't exist\n }\n\n if (!recipientAccountExists) {\n transaction.add(\n createAssociatedTokenAccountInstruction(from, recipientSPLAddress, recipientPublicKey, tokenPublicKey),\n );\n }\n\n transaction.add(\n createTransferCheckedInstruction(fromSPLAddress, tokenPublicKey, recipientSPLAddress, from, amount, decimals),\n );\n\n return transaction;\n}\n\nfunction createTransaction(getConnection: () => Promise<Connection>) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress, sender }: SolanaCreateTransactionParams) => {\n const { createMemoInstruction } = await import(\"@solana/spl-memo\");\n\n const fromPubkey = await getPubkeyFromAddress(sender);\n const validateAddress = await getSolanaAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new SwapKitError(\"core_transaction_invalid_recipient_address\");\n }\n\n const connection = await getConnection();\n const transaction = await createAssetTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n recipient,\n sender,\n });\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n if (memo) transaction.add(createMemoInstruction(memo));\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n return transaction;\n };\n}\n\nasync function createTransactionFromInstructions({\n instructions,\n}: {\n instructions: TransactionInstruction[];\n isProgramDerivedAddress?: boolean;\n}) {\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = new Transaction().add(...instructions);\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n return transaction;\n}\n\nfunction transfer(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress }: SolanaTransferParams) => {\n if (!signer) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n const sender = signer.publicKey?.toString() ?? (await (signer as SolanaProvider).connect()).publicKey.toString();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n if (\"signTransaction\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return broadcastTransaction(getConnection)(signedTransaction);\n }\n\n transaction.sign(signer);\n\n return broadcastTransaction(getConnection)(transaction);\n };\n}\n\nfunction broadcastTransaction(getConnection: () => Promise<Connection>) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const connection = await getConnection();\n return connection.sendRawTransaction(transaction.serialize());\n };\n}\n\nfunction signTransaction(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const { VersionedTransaction } = await import(\"@solana/web3.js\");\n if (!signer) {\n throw new SwapKitError(\"toolbox_solana_no_signer\");\n }\n\n if (!(transaction instanceof VersionedTransaction)) {\n const connection = await getConnection();\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = signer.publicKey || undefined;\n }\n\n if (\"connect\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return signedTransaction;\n }\n\n await transaction.sign([signer] as Signer & Signer[]);\n return transaction;\n };\n}\n\nexport async function createKeysForPath({\n phrase,\n derivationPath = DerivationPath.SOL,\n}: {\n phrase: string;\n derivationPath?: string;\n}) {\n const { HDKey } = await import(\"micro-key-producer/slip10.js\");\n const { mnemonicToSeedSync } = await import(\"@scure/bip39\");\n const { Keypair } = await import(\"@solana/web3.js\");\n const seed = mnemonicToSeedSync(phrase);\n const hdKey = HDKey.fromMasterSeed(seed);\n\n return Keypair.fromSeed(hdKey.derive(derivationPath, true).privateKey);\n}\n\nfunction getAddressFromPubKey(publicKey: PublicKey) {\n return publicKey.toString();\n}\n\nasync function getPubkeyFromAddress(address: string) {\n const { PublicKey } = await import(\"@solana/web3.js\");\n return new PublicKey(address);\n}\n",
5
+ "import type {\n Connection,\n PublicKey,\n Signer,\n Transaction,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport {\n AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericCreateTransactionParams,\n getChainConfig,\n getRPCUrl,\n NetworkDerivationPath,\n SwapKitError,\n updateDerivationPath,\n} from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport type { SolanaCreateTransactionParams, SolanaProvider, SolanaTransferParams } from \"./index\";\n\ntype SolanaSigner = SolanaProvider | Signer;\n\ntype TokenMetadata = {\n name: string;\n symbol: string;\n decimals: number;\n logoURI?: string;\n tags?: string[];\n daily_volume?: number;\n id: string; // mint address\n};\n\nexport async function fetchTokenMetaData(mintAddress: string): Promise<TokenMetadata | null> {\n const assetValue = AssetValue.from({ address: mintAddress, chain: Chain.Solana });\n if (assetValue.symbol !== \"UNKNOWN\") {\n return {\n decimals: assetValue.decimal || 0,\n id: mintAddress,\n logoURI: assetValue.getIconUrl(),\n name: assetValue.symbol,\n symbol: assetValue.ticker,\n };\n }\n\n const url = `https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(mintAddress)}`;\n\n try {\n const res = await fetch(url);\n if (!res.ok) return null;\n\n const arr = (await res.json()) as TokenMetadata[];\n if (!Array.isArray(arr) || arr.length === 0) return null;\n\n const exact = arr.find((t) => t.id === mintAddress);\n return exact || null;\n } catch {\n return null;\n }\n}\n\nasync function getSolanaBalance(address: string) {\n const connection = await getConnection();\n const { PublicKey } = await import(\"@solana/web3.js\");\n const { TOKEN_PROGRAM_ID } = await import(\"@solana/spl-token\");\n const publicKey = new PublicKey(address);\n\n const balances: AssetValue[] = [];\n\n // Get SOL balance\n const solBalance = await connection.getBalance(publicKey);\n if (solBalance > 0) {\n const { baseDecimal } = getChainConfig(Chain.Solana);\n balances.push(AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: solBalance }));\n }\n\n // Get token balances\n const tokenAccounts = await connection.getParsedTokenAccountsByOwner(publicKey, { programId: TOKEN_PROGRAM_ID });\n\n for (const { account } of tokenAccounts.value) {\n const tokenInfo = account.data.parsed.info;\n const mintAddress = tokenInfo.mint;\n const amount = tokenInfo.tokenAmount.amount;\n\n if (Number(amount) === 0) continue;\n\n const metadata = await fetchTokenMetaData(mintAddress);\n const ticker = metadata?.symbol || \"UNKNOWN\";\n const decimals = metadata?.decimals || tokenInfo.tokenAmount.decimals;\n\n balances.push(\n AssetValue.from({ asset: `${Chain.Solana}.${ticker}-${mintAddress}`, fromBaseDecimal: decimals, value: amount }),\n );\n }\n\n return balances;\n}\n\nexport async function getSolanaAddressValidator() {\n const { PublicKey } = await import(\"@solana/web3.js\");\n\n return (address: string) => {\n try {\n const pubkey = new PublicKey(address);\n return PublicKey.isOnCurve(pubkey.toBytes());\n } catch {\n return false;\n }\n };\n}\n\nexport async function getSolanaToolbox(\n toolboxParams?: { signer?: SolanaSigner } | { phrase?: string; index?: number; derivationPath?: DerivationPathArray },\n) {\n const index = toolboxParams && \"index\" in toolboxParams ? toolboxParams.index || 0 : 0;\n const derivationPath = derivationPathToString(\n toolboxParams && \"derivationPath\" in toolboxParams && toolboxParams.derivationPath\n ? toolboxParams.derivationPath\n : updateDerivationPath(NetworkDerivationPath[Chain.Solana], { index }),\n );\n\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, ({ phrase }) => createKeysForPath({ derivationPath, phrase }))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n function getAddress() {\n return signer?.publicKey ? getAddressFromPubKey(signer.publicKey) : \"\";\n }\n\n function getBalance(addressParam?: string) {\n const address = addressParam || getAddress();\n if (!address) throw new SwapKitError(\"core_wallet_connection_not_found\");\n return getSolanaBalance(address);\n }\n\n return {\n broadcastTransaction: broadcastTransaction(getConnection),\n createKeysForPath,\n createTransaction: createTransaction(getConnection),\n createTransactionFromInstructions,\n estimateTransactionFee: estimateTransactionFee(getConnection),\n getAddress,\n getAddressFromPubKey,\n getAddressValidator: getSolanaAddressValidator,\n getBalance,\n getConnection,\n getPubkeyFromAddress,\n signTransaction: signTransaction(getConnection, signer),\n transfer: transfer(getConnection, signer),\n };\n}\n\nfunction estimateTransactionFee(getConnection: () => Promise<Connection>) {\n return async ({\n recipient,\n assetValue,\n memo,\n isProgramDerivedAddress,\n sender,\n }: Omit<GenericCreateTransactionParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean }) => {\n const connection = await getConnection();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n const message = transaction.compileMessage();\n const feeInLamports = await connection.getFeeForMessage(message);\n\n if (feeInLamports.value === null) {\n throw new SwapKitError(\"toolbox_solana_fee_estimation_failed\", \"Could not estimate Solana fee.\");\n }\n\n const { baseDecimal } = getChainConfig(Chain.Solana);\n\n return AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: feeInLamports.value });\n };\n}\n\nasync function getConnection() {\n const { Connection } = await import(\"@solana/web3.js\");\n const rpcUrl = await getRPCUrl(Chain.Solana);\n return new Connection(rpcUrl, \"confirmed\");\n}\n\nfunction createAssetTransaction(getConnection: () => Promise<Connection>) {\n return async ({ assetValue, recipient, sender, isProgramDerivedAddress }: SolanaCreateTransactionParams) => {\n const connection = await getConnection();\n const fromPubkey = await getPubkeyFromAddress(sender);\n\n if (assetValue.isGasAsset) {\n const { Transaction, SystemProgram, PublicKey } = await import(\"@solana/web3.js\");\n\n return new Transaction().add(\n SystemProgram.transfer({\n fromPubkey: fromPubkey,\n lamports: assetValue.getBaseValue(\"number\"),\n toPubkey: new PublicKey(recipient),\n }),\n );\n }\n\n if (assetValue.address) {\n return createSolanaTokenTransaction({\n amount: assetValue.getBaseValue(\"number\"),\n connection,\n decimals: assetValue.decimal as number,\n from: fromPubkey,\n isProgramDerivedAddress,\n recipient,\n tokenAddress: assetValue.address,\n });\n }\n\n return undefined;\n };\n}\n\nasync function createSolanaTokenTransaction({\n tokenAddress,\n recipient,\n from,\n connection,\n amount,\n decimals,\n isProgramDerivedAddress,\n}: {\n tokenAddress: string;\n recipient: string;\n from: PublicKey;\n connection: Connection;\n amount: number;\n decimals: number;\n isProgramDerivedAddress?: boolean;\n}) {\n const {\n getAssociatedTokenAddress,\n getAccount,\n createAssociatedTokenAccountInstruction,\n createTransferCheckedInstruction,\n } = await import(\"@solana/spl-token\");\n const { Transaction, PublicKey } = await import(\"@solana/web3.js\");\n\n const transaction = new Transaction();\n const tokenPublicKey = new PublicKey(tokenAddress);\n const fromSPLAddress = await getAssociatedTokenAddress(tokenPublicKey, from);\n\n const recipientPublicKey = new PublicKey(recipient);\n const recipientSPLAddress = await getAssociatedTokenAddress(\n tokenPublicKey,\n recipientPublicKey,\n isProgramDerivedAddress,\n );\n\n let recipientAccountExists = false;\n try {\n await getAccount(connection, recipientSPLAddress);\n recipientAccountExists = true;\n } catch {\n // Recipient's associated token account doesn't exist\n }\n\n if (!recipientAccountExists) {\n transaction.add(\n createAssociatedTokenAccountInstruction(from, recipientSPLAddress, recipientPublicKey, tokenPublicKey),\n );\n }\n\n transaction.add(\n createTransferCheckedInstruction(fromSPLAddress, tokenPublicKey, recipientSPLAddress, from, amount, decimals),\n );\n\n return transaction;\n}\n\nfunction createTransaction(getConnection: () => Promise<Connection>) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress, sender }: SolanaCreateTransactionParams) => {\n const { createMemoInstruction } = await import(\"@solana/spl-memo\");\n\n const fromPubkey = await getPubkeyFromAddress(sender);\n const validateAddress = await getSolanaAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new SwapKitError(\"core_transaction_invalid_recipient_address\");\n }\n\n const connection = await getConnection();\n const transaction = await createAssetTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n recipient,\n sender,\n });\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n if (memo) transaction.add(createMemoInstruction(memo));\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n return transaction;\n };\n}\n\nasync function createTransactionFromInstructions({\n instructions,\n}: {\n instructions: TransactionInstruction[];\n isProgramDerivedAddress?: boolean;\n}) {\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = new Transaction().add(...instructions);\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n return transaction;\n}\n\nfunction transfer(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress }: SolanaTransferParams) => {\n if (!signer) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n const sender = signer.publicKey?.toString() ?? (await (signer as SolanaProvider).connect()).publicKey.toString();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n if (\"signTransaction\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return broadcastTransaction(getConnection)(signedTransaction);\n }\n\n transaction.sign(signer);\n\n return broadcastTransaction(getConnection)(transaction);\n };\n}\n\nfunction broadcastTransaction(getConnection: () => Promise<Connection>) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const connection = await getConnection();\n return connection.sendRawTransaction(transaction.serialize());\n };\n}\n\nfunction signTransaction(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const { VersionedTransaction } = await import(\"@solana/web3.js\");\n if (!signer) {\n throw new SwapKitError(\"toolbox_solana_no_signer\");\n }\n\n if (!(transaction instanceof VersionedTransaction)) {\n const connection = await getConnection();\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = signer.publicKey || undefined;\n }\n\n if (\"connect\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return signedTransaction;\n }\n\n await transaction.sign([signer] as Signer & Signer[]);\n return transaction;\n };\n}\n\nexport async function createKeysForPath({\n phrase,\n derivationPath = DerivationPath.SOL,\n}: {\n phrase: string;\n derivationPath?: string;\n}) {\n const { HDKey } = await import(\"micro-key-producer/slip10.js\");\n const { mnemonicToSeedSync } = await import(\"@scure/bip39\");\n const { Keypair } = await import(\"@solana/web3.js\");\n const seed = mnemonicToSeedSync(phrase);\n const hdKey = HDKey.fromMasterSeed(seed);\n\n return Keypair.fromSeed(hdKey.derive(derivationPath, true).privateKey);\n}\n\nfunction getAddressFromPubKey(publicKey: PublicKey) {\n return publicKey.toString();\n}\n\nasync function getPubkeyFromAddress(address: string) {\n const { PublicKey } = await import(\"@solana/web3.js\");\n return new PublicKey(address);\n}\n",
6
6
  "import type { PublicKey, Transaction, VersionedTransaction } from \"@solana/web3.js\";\nimport type { GenericCreateTransactionParams, GenericTransferParams } from \"@swapkit/helpers\";\nimport type { getSolanaToolbox } from \"./toolbox\";\n\n// type DisplayEncoding = \"utf8\" | \"hex\";\n\n// type PhantomRequestMethod =\n// | \"connect\"\n// | \"disconnect\"\n// | \"signAndSendTransaction\"\n// | \"signAndSendTransactionV0\"\n// | \"signAndSendTransactionV0WithLookupTable\"\n// | \"signTransaction\"\n// | \"signAllTransactions\"\n// | \"signMessage\";\n\ninterface ConnectOpts {\n onlyIfTrusted: boolean;\n}\n\nexport * from \"./toolbox\";\n\nexport type SolanaWallet = Awaited<ReturnType<typeof getSolanaToolbox>>;\n\nexport interface SolanaProvider {\n connect: (opts?: Partial<ConnectOpts>) => Promise<{ publicKey: PublicKey }>;\n disconnect: () => Promise<void>;\n publicKey: PublicKey | null;\n signTransaction: <T extends Transaction | VersionedTransaction = Transaction>(transaction: T) => Promise<T>;\n}\n\nexport type SolanaCreateTransactionParams = Omit<GenericCreateTransactionParams, \"feeRate\"> & {\n isProgramDerivedAddress?: boolean;\n};\n\nexport type SolanaTransferParams = Omit<GenericTransferParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean };\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "94732C88A2A5B1DC64756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "237EE01709B3BF1D64756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,4 +1,4 @@
1
- var A=Object.create;var{getPrototypeOf:p,defineProperty:I,getOwnPropertyNames:C}=Object;var P=Object.prototype.hasOwnProperty;var N=(j,q,w)=>{w=j!=null?A(p(j)):{};let z=q||!j||!j.__esModule?I(w,"default",{value:j,enumerable:!0}):w;for(let B of C(j))if(!P.call(z,B))I(z,B,{get:()=>j[B],enumerable:!0});return z};var l=(j,q)=>{for(var w in q)I(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(z)=>q[w]=()=>z})};var k=(j,q)=>()=>(j&&(q=j(j=0)),q);var O=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,w)=>(typeof require<"u"?require:q)[w]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});import{AssetValue as M,Chain as Y,DerivationPath as u,derivationPathToString as m,getChainConfig as K,getRPCUrl as d,NetworkDerivationPath as g,SwapKitError as Z,updateDerivationPath as c}from"@swapkit/helpers";import{match as a,P as T}from"ts-pattern";async function o(j){try{let q=await fetch(`https://lite-api.jup.ag/tokens/v1/token/${j}`);if(!q.ok)return null;return await q.json()}catch{return null}}async function r(j){let q=await X(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:z}=await import("@solana/spl-token"),B=new w(j),G=[],F=await q.getBalance(B);if(F>0){let{baseDecimal:Q}=K(Y.Solana);G.push(M.from({chain:Y.Solana,fromBaseDecimal:Q,value:F}))}let J=await q.getParsedTokenAccountsByOwner(B,{programId:z});for(let{account:Q}of J.value){let R=Q.data.parsed.info,U=R.mint,_=R.tokenAmount.amount;if(Number(_)===0)continue;let L=await o(U),W=L?.symbol||"UNKNOWN",$=L?.decimals||R.tokenAmount.decimals;G.push(M.from({asset:`${Y.Solana}.${W}-${U}`,fromBaseDecimal:$,value:_}))}return G}async function S(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch{return!1}}}async function s(j){let q=j&&"index"in j?j.index||0:0,w=m(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:c(g[Y.Solana],{index:q})),z=await a(j).with({phrase:T.string},({phrase:F})=>H({derivationPath:w,phrase:F})).with({signer:T.any},({signer:F})=>F).otherwise(()=>{return});function B(){return z?.publicKey?v(z.publicKey):""}function G(F){let J=F||B();if(!J)throw new Z("core_wallet_connection_not_found");return r(J)}return{broadcastTransaction:x(X),createKeysForPath:H,createTransaction:f(X),createTransactionFromInstructions:n,estimateTransactionFee:t(X),getAddress:B,getAddressFromPubKey:v,getAddressValidator:S,getBalance:G,getConnection:X,getPubkeyFromAddress:V,signTransaction:qj(X,z),transfer:jj(X,z)}}function t(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:G})=>{let F=await j(),Q=(await f(j)({assetValue:w,isProgramDerivedAddress:B,memo:z,recipient:q,sender:G})).compileMessage(),R=await F.getFeeForMessage(Q);if(R.value===null)throw new Z("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:U}=K(Y.Solana);return M.from({chain:Y.Solana,fromBaseDecimal:U,value:R.value})}}async function X(){let{Connection:j}=await import("@solana/web3.js"),q=await d(Y.Solana);return new j(q,"confirmed")}function i(j){return async({assetValue:q,recipient:w,sender:z,isProgramDerivedAddress:B})=>{let G=await j(),F=await V(z);if(q.isGasAsset){let{Transaction:J,SystemProgram:Q,PublicKey:R}=await import("@solana/web3.js");return new J().add(Q.transfer({fromPubkey:F,lamports:q.getBaseValue("number"),toPubkey:new R(w)}))}if(q.address)return e({amount:q.getBaseValue("number"),connection:G,decimals:q.decimal,from:F,isProgramDerivedAddress:B,recipient:w,tokenAddress:q.address});return}}async function e({tokenAddress:j,recipient:q,from:w,connection:z,amount:B,decimals:G,isProgramDerivedAddress:F}){let{getAssociatedTokenAddress:J,getAccount:Q,createAssociatedTokenAccountInstruction:R,createTransferCheckedInstruction:U}=await import("@solana/spl-token"),{Transaction:_,PublicKey:L}=await import("@solana/web3.js"),W=new _,$=new L(j),y=await J($,w),D=new L(q),E=await J($,D,F),h=!1;try{await Q(z,E),h=!0}catch{}if(!h)W.add(R(w,E,D,$));return W.add(U(y,$,E,w,B,G)),W}function f(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:G})=>{let{createMemoInstruction:F}=await import("@solana/spl-memo"),J=await V(G),Q=await S();if(!(B||Q(q)))throw new Z("core_transaction_invalid_recipient_address");let R=await j(),U=await i(j)({assetValue:w,isProgramDerivedAddress:B,recipient:q,sender:G});if(!U)throw new Z("core_transaction_invalid_sender_address");if(z)U.add(F(z));let _=await R.getLatestBlockhash();return U.recentBlockhash=_.blockhash,U.feePayer=J,U}}async function n({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new Z("core_transaction_invalid_sender_address");return w}function jj(j,q){return async({recipient:w,assetValue:z,memo:B,isProgramDerivedAddress:G})=>{if(!q)throw new Z("core_transaction_invalid_sender_address");let F=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),J=await f(j)({assetValue:z,isProgramDerivedAddress:G,memo:B,recipient:w,sender:F});if("signTransaction"in q){let Q=await q.signTransaction(J);return x(j)(Q)}return J.sign(q),x(j)(J)}}function x(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function qj(j,q){return async(w)=>{let{VersionedTransaction:z}=await import("@solana/web3.js");if(!q)throw new Z("toolbox_solana_no_signer");if(!(w instanceof z)){let G=await(await j()).getLatestBlockhash();w.recentBlockhash=G.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function H({phrase:j,derivationPath:q=u.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:z}=await import("@scure/bip39"),{Keypair:B}=await import("@solana/web3.js"),G=z(j),F=w.fromMasterSeed(G);return B.fromSeed(F.derive(q,!0).privateKey)}function v(j){return j.toString()}async function V(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var b=()=>{};var wj={};l(wj,{getSolanaToolbox:()=>s,getSolanaAddressValidator:()=>S,createKeysForPath:()=>H});var zj=k(()=>{b()});zj();export{s as getSolanaToolbox,S as getSolanaAddressValidator,H as createKeysForPath};
1
+ var p=Object.create;var{getPrototypeOf:C,defineProperty:M,getOwnPropertyNames:P}=Object;var l=Object.prototype.hasOwnProperty;var N=(j,q,w)=>{w=j!=null?p(C(j)):{};let z=q||!j||!j.__esModule?M(w,"default",{value:j,enumerable:!0}):w;for(let B of P(j))if(!l.call(z,B))M(z,B,{get:()=>j[B],enumerable:!0});return z};var u=(j,q)=>{for(var w in q)M(j,w,{get:q[w],enumerable:!0,configurable:!0,set:(z)=>q[w]=()=>z})};var k=(j,q)=>()=>(j&&(q=j(j=0)),q);var O=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(q,w)=>(typeof require<"u"?require:q)[w]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});import{AssetValue as E,Chain as X,DerivationPath as m,derivationPathToString as d,getChainConfig as K,getRPCUrl as g,NetworkDerivationPath as c,SwapKitError as Z,updateDerivationPath as a}from"@swapkit/helpers";import{match as o,P as T}from"ts-pattern";async function b(j){let q=E.from({address:j,chain:X.Solana});if(q.symbol!=="UNKNOWN")return{decimals:q.decimal||0,id:j,logoURI:q.getIconUrl(),name:q.symbol,symbol:q.ticker};let w=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(j)}`;try{let z=await fetch(w);if(!z.ok)return null;let B=await z.json();if(!Array.isArray(B)||B.length===0)return null;return B.find((F)=>F.id===j)||null}catch{return null}}async function r(j){let q=await Y(),{PublicKey:w}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:z}=await import("@solana/spl-token"),B=new w(j),G=[],F=await q.getBalance(B);if(F>0){let{baseDecimal:Q}=K(X.Solana);G.push(E.from({chain:X.Solana,fromBaseDecimal:Q,value:F}))}let J=await q.getParsedTokenAccountsByOwner(B,{programId:z});for(let{account:Q}of J.value){let R=Q.data.parsed.info,U=R.mint,_=R.tokenAmount.amount;if(Number(_)===0)continue;let L=await b(U),W=L?.symbol||"UNKNOWN",$=L?.decimals||R.tokenAmount.decimals;G.push(E.from({asset:`${X.Solana}.${W}-${U}`,fromBaseDecimal:$,value:_}))}return G}async function S(){let{PublicKey:j}=await import("@solana/web3.js");return(q)=>{try{let w=new j(q);return j.isOnCurve(w.toBytes())}catch{return!1}}}async function s(j){let q=j&&"index"in j?j.index||0:0,w=d(j&&"derivationPath"in j&&j.derivationPath?j.derivationPath:a(c[X.Solana],{index:q})),z=await o(j).with({phrase:T.string},({phrase:F})=>H({derivationPath:w,phrase:F})).with({signer:T.any},({signer:F})=>F).otherwise(()=>{return});function B(){return z?.publicKey?v(z.publicKey):""}function G(F){let J=F||B();if(!J)throw new Z("core_wallet_connection_not_found");return r(J)}return{broadcastTransaction:x(Y),createKeysForPath:H,createTransaction:f(Y),createTransactionFromInstructions:n,estimateTransactionFee:t(Y),getAddress:B,getAddressFromPubKey:v,getAddressValidator:S,getBalance:G,getConnection:Y,getPubkeyFromAddress:V,signTransaction:qj(Y,z),transfer:jj(Y,z)}}function t(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:G})=>{let F=await j(),Q=(await f(j)({assetValue:w,isProgramDerivedAddress:B,memo:z,recipient:q,sender:G})).compileMessage(),R=await F.getFeeForMessage(Q);if(R.value===null)throw new Z("toolbox_solana_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:U}=K(X.Solana);return E.from({chain:X.Solana,fromBaseDecimal:U,value:R.value})}}async function Y(){let{Connection:j}=await import("@solana/web3.js"),q=await g(X.Solana);return new j(q,"confirmed")}function i(j){return async({assetValue:q,recipient:w,sender:z,isProgramDerivedAddress:B})=>{let G=await j(),F=await V(z);if(q.isGasAsset){let{Transaction:J,SystemProgram:Q,PublicKey:R}=await import("@solana/web3.js");return new J().add(Q.transfer({fromPubkey:F,lamports:q.getBaseValue("number"),toPubkey:new R(w)}))}if(q.address)return e({amount:q.getBaseValue("number"),connection:G,decimals:q.decimal,from:F,isProgramDerivedAddress:B,recipient:w,tokenAddress:q.address});return}}async function e({tokenAddress:j,recipient:q,from:w,connection:z,amount:B,decimals:G,isProgramDerivedAddress:F}){let{getAssociatedTokenAddress:J,getAccount:Q,createAssociatedTokenAccountInstruction:R,createTransferCheckedInstruction:U}=await import("@solana/spl-token"),{Transaction:_,PublicKey:L}=await import("@solana/web3.js"),W=new _,$=new L(j),A=await J($,w),D=new L(q),I=await J($,D,F),h=!1;try{await Q(z,I),h=!0}catch{}if(!h)W.add(R(w,I,D,$));return W.add(U(A,$,I,w,B,G)),W}function f(j){return async({recipient:q,assetValue:w,memo:z,isProgramDerivedAddress:B,sender:G})=>{let{createMemoInstruction:F}=await import("@solana/spl-memo"),J=await V(G),Q=await S();if(!(B||Q(q)))throw new Z("core_transaction_invalid_recipient_address");let R=await j(),U=await i(j)({assetValue:w,isProgramDerivedAddress:B,recipient:q,sender:G});if(!U)throw new Z("core_transaction_invalid_sender_address");if(z)U.add(F(z));let _=await R.getLatestBlockhash();return U.recentBlockhash=_.blockhash,U.feePayer=J,U}}async function n({instructions:j}){let{Transaction:q}=await import("@solana/web3.js"),w=new q().add(...j);if(!w)throw new Z("core_transaction_invalid_sender_address");return w}function jj(j,q){return async({recipient:w,assetValue:z,memo:B,isProgramDerivedAddress:G})=>{if(!q)throw new Z("core_transaction_invalid_sender_address");let F=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),J=await f(j)({assetValue:z,isProgramDerivedAddress:G,memo:B,recipient:w,sender:F});if("signTransaction"in q){let Q=await q.signTransaction(J);return x(j)(Q)}return J.sign(q),x(j)(J)}}function x(j){return async(q)=>{return(await j()).sendRawTransaction(q.serialize())}}function qj(j,q){return async(w)=>{let{VersionedTransaction:z}=await import("@solana/web3.js");if(!q)throw new Z("toolbox_solana_no_signer");if(!(w instanceof z)){let G=await(await j()).getLatestBlockhash();w.recentBlockhash=G.blockhash,w.feePayer=q.publicKey||void 0}if("connect"in q)return await q.signTransaction(w);return await w.sign([q]),w}}async function H({phrase:j,derivationPath:q=m.SOL}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:z}=await import("@scure/bip39"),{Keypair:B}=await import("@solana/web3.js"),G=z(j),F=w.fromMasterSeed(G);return B.fromSeed(F.derive(q,!0).privateKey)}function v(j){return j.toString()}async function V(j){let{PublicKey:q}=await import("@solana/web3.js");return new q(j)}var y=()=>{};var wj={};u(wj,{getSolanaToolbox:()=>s,getSolanaAddressValidator:()=>S,fetchTokenMetaData:()=>b,createKeysForPath:()=>H});var zj=k(()=>{y()});zj();export{s as getSolanaToolbox,S as getSolanaAddressValidator,b as fetchTokenMetaData,H as createKeysForPath};
2
2
 
3
- //# debugId=F734745E357E083C64756E2164756E21
3
+ //# debugId=96C2A166345A630764756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/solana/toolbox.ts", "../src/solana/index.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n Connection,\n PublicKey,\n Signer,\n Transaction,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport {\n AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericCreateTransactionParams,\n getChainConfig,\n getRPCUrl,\n NetworkDerivationPath,\n SwapKitError,\n updateDerivationPath,\n} from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport type { SolanaCreateTransactionParams, SolanaProvider, SolanaTransferParams } from \"./index\";\n\ntype SolanaSigner = SolanaProvider | Signer;\n\ntype TokenMetadata = {\n name: string;\n symbol: string;\n decimals: number;\n logoURI?: string;\n tags?: string[];\n daily_volume?: number;\n};\n\nasync function fetchTokenMetaData(mintAddress: string): Promise<TokenMetadata | null> {\n try {\n const response = await fetch(`https://lite-api.jup.ag/tokens/v1/token/${mintAddress}`);\n if (!response.ok) return null;\n return await response.json();\n } catch {\n return null;\n }\n}\n\nasync function getSolanaBalance(address: string) {\n const connection = await getConnection();\n const { PublicKey } = await import(\"@solana/web3.js\");\n const { TOKEN_PROGRAM_ID } = await import(\"@solana/spl-token\");\n const publicKey = new PublicKey(address);\n\n const balances: AssetValue[] = [];\n\n // Get SOL balance\n const solBalance = await connection.getBalance(publicKey);\n if (solBalance > 0) {\n const { baseDecimal } = getChainConfig(Chain.Solana);\n balances.push(AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: solBalance }));\n }\n\n // Get token balances\n const tokenAccounts = await connection.getParsedTokenAccountsByOwner(publicKey, { programId: TOKEN_PROGRAM_ID });\n\n for (const { account } of tokenAccounts.value) {\n const tokenInfo = account.data.parsed.info;\n const mintAddress = tokenInfo.mint;\n const amount = tokenInfo.tokenAmount.amount;\n\n if (Number(amount) === 0) continue;\n\n // Fetch token metadata from Jupiter\n const metadata = await fetchTokenMetaData(mintAddress);\n const symbol = metadata?.symbol || \"UNKNOWN\";\n const decimals = metadata?.decimals || tokenInfo.tokenAmount.decimals;\n\n balances.push(\n AssetValue.from({ asset: `${Chain.Solana}.${symbol}-${mintAddress}`, fromBaseDecimal: decimals, value: amount }),\n );\n }\n\n return balances;\n}\n\nexport async function getSolanaAddressValidator() {\n const { PublicKey } = await import(\"@solana/web3.js\");\n\n return (address: string) => {\n try {\n const pubkey = new PublicKey(address);\n return PublicKey.isOnCurve(pubkey.toBytes());\n } catch {\n return false;\n }\n };\n}\n\nexport async function getSolanaToolbox(\n toolboxParams?: { signer?: SolanaSigner } | { phrase?: string; index?: number; derivationPath?: DerivationPathArray },\n) {\n const index = toolboxParams && \"index\" in toolboxParams ? toolboxParams.index || 0 : 0;\n const derivationPath = derivationPathToString(\n toolboxParams && \"derivationPath\" in toolboxParams && toolboxParams.derivationPath\n ? toolboxParams.derivationPath\n : updateDerivationPath(NetworkDerivationPath[Chain.Solana], { index }),\n );\n\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, ({ phrase }) => createKeysForPath({ derivationPath, phrase }))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n function getAddress() {\n return signer?.publicKey ? getAddressFromPubKey(signer.publicKey) : \"\";\n }\n\n function getBalance(addressParam?: string) {\n const address = addressParam || getAddress();\n if (!address) throw new SwapKitError(\"core_wallet_connection_not_found\");\n return getSolanaBalance(address);\n }\n\n return {\n broadcastTransaction: broadcastTransaction(getConnection),\n createKeysForPath,\n createTransaction: createTransaction(getConnection),\n createTransactionFromInstructions,\n estimateTransactionFee: estimateTransactionFee(getConnection),\n getAddress,\n getAddressFromPubKey,\n getAddressValidator: getSolanaAddressValidator,\n getBalance,\n getConnection,\n getPubkeyFromAddress,\n signTransaction: signTransaction(getConnection, signer),\n transfer: transfer(getConnection, signer),\n };\n}\n\nfunction estimateTransactionFee(getConnection: () => Promise<Connection>) {\n return async ({\n recipient,\n assetValue,\n memo,\n isProgramDerivedAddress,\n sender,\n }: Omit<GenericCreateTransactionParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean }) => {\n const connection = await getConnection();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n const message = transaction.compileMessage();\n const feeInLamports = await connection.getFeeForMessage(message);\n\n if (feeInLamports.value === null) {\n throw new SwapKitError(\"toolbox_solana_fee_estimation_failed\", \"Could not estimate Solana fee.\");\n }\n\n const { baseDecimal } = getChainConfig(Chain.Solana);\n\n return AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: feeInLamports.value });\n };\n}\n\nasync function getConnection() {\n const { Connection } = await import(\"@solana/web3.js\");\n const rpcUrl = await getRPCUrl(Chain.Solana);\n return new Connection(rpcUrl, \"confirmed\");\n}\n\nfunction createAssetTransaction(getConnection: () => Promise<Connection>) {\n return async ({ assetValue, recipient, sender, isProgramDerivedAddress }: SolanaCreateTransactionParams) => {\n const connection = await getConnection();\n const fromPubkey = await getPubkeyFromAddress(sender);\n\n if (assetValue.isGasAsset) {\n const { Transaction, SystemProgram, PublicKey } = await import(\"@solana/web3.js\");\n\n return new Transaction().add(\n SystemProgram.transfer({\n fromPubkey: fromPubkey,\n lamports: assetValue.getBaseValue(\"number\"),\n toPubkey: new PublicKey(recipient),\n }),\n );\n }\n\n if (assetValue.address) {\n return createSolanaTokenTransaction({\n amount: assetValue.getBaseValue(\"number\"),\n connection,\n decimals: assetValue.decimal as number,\n from: fromPubkey,\n isProgramDerivedAddress,\n recipient,\n tokenAddress: assetValue.address,\n });\n }\n\n return undefined;\n };\n}\n\nasync function createSolanaTokenTransaction({\n tokenAddress,\n recipient,\n from,\n connection,\n amount,\n decimals,\n isProgramDerivedAddress,\n}: {\n tokenAddress: string;\n recipient: string;\n from: PublicKey;\n connection: Connection;\n amount: number;\n decimals: number;\n isProgramDerivedAddress?: boolean;\n}) {\n const {\n getAssociatedTokenAddress,\n getAccount,\n createAssociatedTokenAccountInstruction,\n createTransferCheckedInstruction,\n } = await import(\"@solana/spl-token\");\n const { Transaction, PublicKey } = await import(\"@solana/web3.js\");\n\n const transaction = new Transaction();\n const tokenPublicKey = new PublicKey(tokenAddress);\n const fromSPLAddress = await getAssociatedTokenAddress(tokenPublicKey, from);\n\n const recipientPublicKey = new PublicKey(recipient);\n const recipientSPLAddress = await getAssociatedTokenAddress(\n tokenPublicKey,\n recipientPublicKey,\n isProgramDerivedAddress,\n );\n\n let recipientAccountExists = false;\n try {\n await getAccount(connection, recipientSPLAddress);\n recipientAccountExists = true;\n } catch {\n // Recipient's associated token account doesn't exist\n }\n\n if (!recipientAccountExists) {\n transaction.add(\n createAssociatedTokenAccountInstruction(from, recipientSPLAddress, recipientPublicKey, tokenPublicKey),\n );\n }\n\n transaction.add(\n createTransferCheckedInstruction(fromSPLAddress, tokenPublicKey, recipientSPLAddress, from, amount, decimals),\n );\n\n return transaction;\n}\n\nfunction createTransaction(getConnection: () => Promise<Connection>) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress, sender }: SolanaCreateTransactionParams) => {\n const { createMemoInstruction } = await import(\"@solana/spl-memo\");\n\n const fromPubkey = await getPubkeyFromAddress(sender);\n const validateAddress = await getSolanaAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new SwapKitError(\"core_transaction_invalid_recipient_address\");\n }\n\n const connection = await getConnection();\n const transaction = await createAssetTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n recipient,\n sender,\n });\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n if (memo) transaction.add(createMemoInstruction(memo));\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n return transaction;\n };\n}\n\nasync function createTransactionFromInstructions({\n instructions,\n}: {\n instructions: TransactionInstruction[];\n isProgramDerivedAddress?: boolean;\n}) {\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = new Transaction().add(...instructions);\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n return transaction;\n}\n\nfunction transfer(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress }: SolanaTransferParams) => {\n if (!signer) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n const sender = signer.publicKey?.toString() ?? (await (signer as SolanaProvider).connect()).publicKey.toString();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n if (\"signTransaction\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return broadcastTransaction(getConnection)(signedTransaction);\n }\n\n transaction.sign(signer);\n\n return broadcastTransaction(getConnection)(transaction);\n };\n}\n\nfunction broadcastTransaction(getConnection: () => Promise<Connection>) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const connection = await getConnection();\n return connection.sendRawTransaction(transaction.serialize());\n };\n}\n\nfunction signTransaction(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const { VersionedTransaction } = await import(\"@solana/web3.js\");\n if (!signer) {\n throw new SwapKitError(\"toolbox_solana_no_signer\");\n }\n\n if (!(transaction instanceof VersionedTransaction)) {\n const connection = await getConnection();\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = signer.publicKey || undefined;\n }\n\n if (\"connect\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return signedTransaction;\n }\n\n await transaction.sign([signer] as Signer & Signer[]);\n return transaction;\n };\n}\n\nexport async function createKeysForPath({\n phrase,\n derivationPath = DerivationPath.SOL,\n}: {\n phrase: string;\n derivationPath?: string;\n}) {\n const { HDKey } = await import(\"micro-key-producer/slip10.js\");\n const { mnemonicToSeedSync } = await import(\"@scure/bip39\");\n const { Keypair } = await import(\"@solana/web3.js\");\n const seed = mnemonicToSeedSync(phrase);\n const hdKey = HDKey.fromMasterSeed(seed);\n\n return Keypair.fromSeed(hdKey.derive(derivationPath, true).privateKey);\n}\n\nfunction getAddressFromPubKey(publicKey: PublicKey) {\n return publicKey.toString();\n}\n\nasync function getPubkeyFromAddress(address: string) {\n const { PublicKey } = await import(\"@solana/web3.js\");\n return new PublicKey(address);\n}\n",
5
+ "import type {\n Connection,\n PublicKey,\n Signer,\n Transaction,\n TransactionInstruction,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport {\n AssetValue,\n Chain,\n DerivationPath,\n type DerivationPathArray,\n derivationPathToString,\n type GenericCreateTransactionParams,\n getChainConfig,\n getRPCUrl,\n NetworkDerivationPath,\n SwapKitError,\n updateDerivationPath,\n} from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport type { SolanaCreateTransactionParams, SolanaProvider, SolanaTransferParams } from \"./index\";\n\ntype SolanaSigner = SolanaProvider | Signer;\n\ntype TokenMetadata = {\n name: string;\n symbol: string;\n decimals: number;\n logoURI?: string;\n tags?: string[];\n daily_volume?: number;\n id: string; // mint address\n};\n\nexport async function fetchTokenMetaData(mintAddress: string): Promise<TokenMetadata | null> {\n const assetValue = AssetValue.from({ address: mintAddress, chain: Chain.Solana });\n if (assetValue.symbol !== \"UNKNOWN\") {\n return {\n decimals: assetValue.decimal || 0,\n id: mintAddress,\n logoURI: assetValue.getIconUrl(),\n name: assetValue.symbol,\n symbol: assetValue.ticker,\n };\n }\n\n const url = `https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(mintAddress)}`;\n\n try {\n const res = await fetch(url);\n if (!res.ok) return null;\n\n const arr = (await res.json()) as TokenMetadata[];\n if (!Array.isArray(arr) || arr.length === 0) return null;\n\n const exact = arr.find((t) => t.id === mintAddress);\n return exact || null;\n } catch {\n return null;\n }\n}\n\nasync function getSolanaBalance(address: string) {\n const connection = await getConnection();\n const { PublicKey } = await import(\"@solana/web3.js\");\n const { TOKEN_PROGRAM_ID } = await import(\"@solana/spl-token\");\n const publicKey = new PublicKey(address);\n\n const balances: AssetValue[] = [];\n\n // Get SOL balance\n const solBalance = await connection.getBalance(publicKey);\n if (solBalance > 0) {\n const { baseDecimal } = getChainConfig(Chain.Solana);\n balances.push(AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: solBalance }));\n }\n\n // Get token balances\n const tokenAccounts = await connection.getParsedTokenAccountsByOwner(publicKey, { programId: TOKEN_PROGRAM_ID });\n\n for (const { account } of tokenAccounts.value) {\n const tokenInfo = account.data.parsed.info;\n const mintAddress = tokenInfo.mint;\n const amount = tokenInfo.tokenAmount.amount;\n\n if (Number(amount) === 0) continue;\n\n const metadata = await fetchTokenMetaData(mintAddress);\n const ticker = metadata?.symbol || \"UNKNOWN\";\n const decimals = metadata?.decimals || tokenInfo.tokenAmount.decimals;\n\n balances.push(\n AssetValue.from({ asset: `${Chain.Solana}.${ticker}-${mintAddress}`, fromBaseDecimal: decimals, value: amount }),\n );\n }\n\n return balances;\n}\n\nexport async function getSolanaAddressValidator() {\n const { PublicKey } = await import(\"@solana/web3.js\");\n\n return (address: string) => {\n try {\n const pubkey = new PublicKey(address);\n return PublicKey.isOnCurve(pubkey.toBytes());\n } catch {\n return false;\n }\n };\n}\n\nexport async function getSolanaToolbox(\n toolboxParams?: { signer?: SolanaSigner } | { phrase?: string; index?: number; derivationPath?: DerivationPathArray },\n) {\n const index = toolboxParams && \"index\" in toolboxParams ? toolboxParams.index || 0 : 0;\n const derivationPath = derivationPathToString(\n toolboxParams && \"derivationPath\" in toolboxParams && toolboxParams.derivationPath\n ? toolboxParams.derivationPath\n : updateDerivationPath(NetworkDerivationPath[Chain.Solana], { index }),\n );\n\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, ({ phrase }) => createKeysForPath({ derivationPath, phrase }))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n function getAddress() {\n return signer?.publicKey ? getAddressFromPubKey(signer.publicKey) : \"\";\n }\n\n function getBalance(addressParam?: string) {\n const address = addressParam || getAddress();\n if (!address) throw new SwapKitError(\"core_wallet_connection_not_found\");\n return getSolanaBalance(address);\n }\n\n return {\n broadcastTransaction: broadcastTransaction(getConnection),\n createKeysForPath,\n createTransaction: createTransaction(getConnection),\n createTransactionFromInstructions,\n estimateTransactionFee: estimateTransactionFee(getConnection),\n getAddress,\n getAddressFromPubKey,\n getAddressValidator: getSolanaAddressValidator,\n getBalance,\n getConnection,\n getPubkeyFromAddress,\n signTransaction: signTransaction(getConnection, signer),\n transfer: transfer(getConnection, signer),\n };\n}\n\nfunction estimateTransactionFee(getConnection: () => Promise<Connection>) {\n return async ({\n recipient,\n assetValue,\n memo,\n isProgramDerivedAddress,\n sender,\n }: Omit<GenericCreateTransactionParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean }) => {\n const connection = await getConnection();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n const message = transaction.compileMessage();\n const feeInLamports = await connection.getFeeForMessage(message);\n\n if (feeInLamports.value === null) {\n throw new SwapKitError(\"toolbox_solana_fee_estimation_failed\", \"Could not estimate Solana fee.\");\n }\n\n const { baseDecimal } = getChainConfig(Chain.Solana);\n\n return AssetValue.from({ chain: Chain.Solana, fromBaseDecimal: baseDecimal, value: feeInLamports.value });\n };\n}\n\nasync function getConnection() {\n const { Connection } = await import(\"@solana/web3.js\");\n const rpcUrl = await getRPCUrl(Chain.Solana);\n return new Connection(rpcUrl, \"confirmed\");\n}\n\nfunction createAssetTransaction(getConnection: () => Promise<Connection>) {\n return async ({ assetValue, recipient, sender, isProgramDerivedAddress }: SolanaCreateTransactionParams) => {\n const connection = await getConnection();\n const fromPubkey = await getPubkeyFromAddress(sender);\n\n if (assetValue.isGasAsset) {\n const { Transaction, SystemProgram, PublicKey } = await import(\"@solana/web3.js\");\n\n return new Transaction().add(\n SystemProgram.transfer({\n fromPubkey: fromPubkey,\n lamports: assetValue.getBaseValue(\"number\"),\n toPubkey: new PublicKey(recipient),\n }),\n );\n }\n\n if (assetValue.address) {\n return createSolanaTokenTransaction({\n amount: assetValue.getBaseValue(\"number\"),\n connection,\n decimals: assetValue.decimal as number,\n from: fromPubkey,\n isProgramDerivedAddress,\n recipient,\n tokenAddress: assetValue.address,\n });\n }\n\n return undefined;\n };\n}\n\nasync function createSolanaTokenTransaction({\n tokenAddress,\n recipient,\n from,\n connection,\n amount,\n decimals,\n isProgramDerivedAddress,\n}: {\n tokenAddress: string;\n recipient: string;\n from: PublicKey;\n connection: Connection;\n amount: number;\n decimals: number;\n isProgramDerivedAddress?: boolean;\n}) {\n const {\n getAssociatedTokenAddress,\n getAccount,\n createAssociatedTokenAccountInstruction,\n createTransferCheckedInstruction,\n } = await import(\"@solana/spl-token\");\n const { Transaction, PublicKey } = await import(\"@solana/web3.js\");\n\n const transaction = new Transaction();\n const tokenPublicKey = new PublicKey(tokenAddress);\n const fromSPLAddress = await getAssociatedTokenAddress(tokenPublicKey, from);\n\n const recipientPublicKey = new PublicKey(recipient);\n const recipientSPLAddress = await getAssociatedTokenAddress(\n tokenPublicKey,\n recipientPublicKey,\n isProgramDerivedAddress,\n );\n\n let recipientAccountExists = false;\n try {\n await getAccount(connection, recipientSPLAddress);\n recipientAccountExists = true;\n } catch {\n // Recipient's associated token account doesn't exist\n }\n\n if (!recipientAccountExists) {\n transaction.add(\n createAssociatedTokenAccountInstruction(from, recipientSPLAddress, recipientPublicKey, tokenPublicKey),\n );\n }\n\n transaction.add(\n createTransferCheckedInstruction(fromSPLAddress, tokenPublicKey, recipientSPLAddress, from, amount, decimals),\n );\n\n return transaction;\n}\n\nfunction createTransaction(getConnection: () => Promise<Connection>) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress, sender }: SolanaCreateTransactionParams) => {\n const { createMemoInstruction } = await import(\"@solana/spl-memo\");\n\n const fromPubkey = await getPubkeyFromAddress(sender);\n const validateAddress = await getSolanaAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new SwapKitError(\"core_transaction_invalid_recipient_address\");\n }\n\n const connection = await getConnection();\n const transaction = await createAssetTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n recipient,\n sender,\n });\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n if (memo) transaction.add(createMemoInstruction(memo));\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n return transaction;\n };\n}\n\nasync function createTransactionFromInstructions({\n instructions,\n}: {\n instructions: TransactionInstruction[];\n isProgramDerivedAddress?: boolean;\n}) {\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = new Transaction().add(...instructions);\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n return transaction;\n}\n\nfunction transfer(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async ({ recipient, assetValue, memo, isProgramDerivedAddress }: SolanaTransferParams) => {\n if (!signer) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n const sender = signer.publicKey?.toString() ?? (await (signer as SolanaProvider).connect()).publicKey.toString();\n\n const transaction = await createTransaction(getConnection)({\n assetValue,\n isProgramDerivedAddress,\n memo,\n recipient,\n sender,\n });\n\n if (\"signTransaction\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return broadcastTransaction(getConnection)(signedTransaction);\n }\n\n transaction.sign(signer);\n\n return broadcastTransaction(getConnection)(transaction);\n };\n}\n\nfunction broadcastTransaction(getConnection: () => Promise<Connection>) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const connection = await getConnection();\n return connection.sendRawTransaction(transaction.serialize());\n };\n}\n\nfunction signTransaction(getConnection: () => Promise<Connection>, signer?: SolanaSigner) {\n return async (transaction: Transaction | VersionedTransaction) => {\n const { VersionedTransaction } = await import(\"@solana/web3.js\");\n if (!signer) {\n throw new SwapKitError(\"toolbox_solana_no_signer\");\n }\n\n if (!(transaction instanceof VersionedTransaction)) {\n const connection = await getConnection();\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = signer.publicKey || undefined;\n }\n\n if (\"connect\" in signer) {\n const signedTransaction = await signer.signTransaction(transaction);\n return signedTransaction;\n }\n\n await transaction.sign([signer] as Signer & Signer[]);\n return transaction;\n };\n}\n\nexport async function createKeysForPath({\n phrase,\n derivationPath = DerivationPath.SOL,\n}: {\n phrase: string;\n derivationPath?: string;\n}) {\n const { HDKey } = await import(\"micro-key-producer/slip10.js\");\n const { mnemonicToSeedSync } = await import(\"@scure/bip39\");\n const { Keypair } = await import(\"@solana/web3.js\");\n const seed = mnemonicToSeedSync(phrase);\n const hdKey = HDKey.fromMasterSeed(seed);\n\n return Keypair.fromSeed(hdKey.derive(derivationPath, true).privateKey);\n}\n\nfunction getAddressFromPubKey(publicKey: PublicKey) {\n return publicKey.toString();\n}\n\nasync function getPubkeyFromAddress(address: string) {\n const { PublicKey } = await import(\"@solana/web3.js\");\n return new PublicKey(address);\n}\n",
6
6
  "import type { PublicKey, Transaction, VersionedTransaction } from \"@solana/web3.js\";\nimport type { GenericCreateTransactionParams, GenericTransferParams } from \"@swapkit/helpers\";\nimport type { getSolanaToolbox } from \"./toolbox\";\n\n// type DisplayEncoding = \"utf8\" | \"hex\";\n\n// type PhantomRequestMethod =\n// | \"connect\"\n// | \"disconnect\"\n// | \"signAndSendTransaction\"\n// | \"signAndSendTransactionV0\"\n// | \"signAndSendTransactionV0WithLookupTable\"\n// | \"signTransaction\"\n// | \"signAllTransactions\"\n// | \"signMessage\";\n\ninterface ConnectOpts {\n onlyIfTrusted: boolean;\n}\n\nexport * from \"./toolbox\";\n\nexport type SolanaWallet = Awaited<ReturnType<typeof getSolanaToolbox>>;\n\nexport interface SolanaProvider {\n connect: (opts?: Partial<ConnectOpts>) => Promise<{ publicKey: PublicKey }>;\n disconnect: () => Promise<void>;\n publicKey: PublicKey | null;\n signTransaction: <T extends Transaction | VersionedTransaction = Transaction>(transaction: T) => Promise<T>;\n}\n\nexport type SolanaCreateTransactionParams = Omit<GenericCreateTransactionParams, \"feeRate\"> & {\n isProgramDerivedAddress?: boolean;\n};\n\nexport type SolanaTransferParams = Omit<GenericTransferParams, \"feeRate\"> & { isProgramDerivedAddress?: boolean };\n"
7
7
  ],
8
- "mappings": "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",
9
- "debugId": "F734745E357E083C64756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "96C2A166345A630764756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseEVMToolbox.d.ts","sourceRoot":"","sources":["../../../../src/evm/toolbox/baseEVMToolbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseEVMToolbox.d.ts","sourceRoot":"","sources":["../../../../src/evm/toolbox/baseEVMToolbox.ts"],"names":[],"mappings":"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"}